I use this plugin a good bit so this has intrigued me. You could apply this same method to store and filter of the loop with some other plugin or function. This is a pretty good beginning.
function remove_thm_cat_loop() {
remove_action('thematic_categoryloop','thematic_category_loop');
}
add_action('init','remove_thm_cat_loop');
function child_cat_loop() {
// Store the loop in a string so it can be filtered
global $id, $post, $authordata;
$i=0;
while (have_posts()) : the_post();
// recreating the thematic functions that build the loop without echoing
$cat_div_open = '<div id="post-' . get_the_ID() . '" class="' . thematic_post_class(false) . '">';
// entry header
$cat_header = '<h2 class="entry-title"><a href="'.get_permalink().'" title="';
$cat_header .= __('Permalink to ', 'thematic') . the_title_attribute('echo=0');
$cat_header .= '" rel="bookmark">';
$cat_header .= get_the_title();
$cat_header .= "</a></h2>\n";
// entry postmeta
$cat_postmeta = '<div class="entry-meta">';
$cat_postmeta .= '<span class="meta-prep meta-prep-author">' . __('By ', 'thematic') . '</span>';
$cat_postmeta .= '<span class="author vcard">'. '<a class="url fn n" href="';
$cat_postmeta .= get_author_link(false, $authordata->ID, $authordata->user_nicename);
$cat_postmeta .= '" title="' . __('View all posts by ', 'thematic') . get_the_author() . '">';
$cat_postmeta .= get_the_author();
$cat_postmeta .= '</a></span><span class="meta-sep meta-sep-entry-date"> | </span>';
$cat_postmeta .= '<span class="meta-prep meta-prep-entry-date">' . __('Published: ', 'thematic') . '</span>';
$cat_postmeta .= '<span class="entry-date"><abbr class="published" title="';
$cat_postmeta .= get_the_time(thematic_time_title()) . '">';
$cat_postmeta .= get_the_time(thematic_time_display());
$cat_postmeta .= '</abbr></span>';
// edit link
if (current_user_can('edit_posts')) {
$cat_postmeta .= ' <span class="meta-sep meta-sep-edit">|</span> ' . $posteditlink;
$cat_postmeta .= '<span class="edit"><a href="' . get_bloginfo('wpurl') . '/wp-admin/post.php?action=edit&post=' . $id;
$cat_postmeta .= '" title="' . __('Edit post', 'thematic') .'">';
$cat_postmeta .= __('Edit', 'thematic') . '</a></span>';
}
$cat_postmeta .= '</div<!-- .entry-meta-->';
// entry content
// could be changed to get_the_excerpt()
$cat_content = '<div class="entry-content">'.get_the_content().'</div>';
// entry footer
$cat_footer = '<div class="entry-utility">';
// cat links
// ?? not sure but cats meow not working to exclude current cat from list
if ( is_category() && $cats_meow = thematic_cats_meow(', ') ) { /* Returns categories other than the one queried */
$cat_footer .= __('Also posted in ', 'thematic') . $cats_meow;
$cat_footer .= '</span> <span class="meta-sep meta-sep-tag-links">|</span>';
} else {
$cat_footer .= __('Posted in ', 'thematic') . get_the_category_list(', ');
$cat_footer .= '</span> <span class="meta-sep meta-sep-tag-links">|</span>';
}
// comments
if (comments_open()) {
$postcommentnumber = get_comments_number();
if ($postcommentnumber > '1') {
$cat_footer .= ' <span class="comments-link"><a href="' . get_permalink() . '#comments" title="' . __('Comment on ', 'thematic') . the_title_attribute('echo=0') . '">';
$cat_footer .= get_comments_number() . __(' Comments', 'thematic') . '</a></span>';
} elseif ($postcommentnumber == '1') {
$cat_footer .= ' <span class="comments-link"><a href="' . get_permalink() . '#comments" title="' . __('Comment on ', 'thematic') . the_title_attribute('echo=0') . '">';
$cat_footer .= get_comments_number() . __(' Comment', 'thematic') . '</a></span>';
} elseif ($postcommentnumber == '0') {
$cat_footer .= ' <span class="comments-link"><a href="' . get_permalink() . '#comments" title="' . __('Comment on ', 'thematic') . the_title_attribute('echo=0') . '">';
$cat_footer .= __('Leave a comment', 'thematic') . '</a></span>';
}
} else {
$cat_footer .= ' <span class="comments-link comments-closed-link">' . __('Comments closed', 'thematic') .'</span>';
}
// edit link
if (current_user_can('edit_posts')) {
$cat_footer .= ' <span class="meta-sep meta-sep-edit">|</span> ' . $posteditlink;
$cat_footer .= '<span class="edit"><a href="' . get_bloginfo('wpurl') . '/wp-admin/post.php?action=edit&post=' . $id;
$cat_footer .= '" title="' . __('Edit post', 'thematic') .'">';
$cat_footer .= __('Edit', 'thematic') . '</a></span>';
}
$cat_footer .= "</div><!-- .entry-utility -->\n";
$cat_div_close = '</div><!-- .post -->';
// put it all together
$cat_entry = $cat_div_open . $cat_header . $cat_postmeta . $cat_content . $cat_footer . $cat_div_close;
// count and concatenate entries
if ($i=0) {
$cat_loop = $cat_entry;
} else {
$cat_loop .= "\n". $cat_entry;
}
$i++;
endwhile;
// Now that the loop is in a string
// Load the content from $cat_loop
$wptoc_contents = $cat_loop;
// Be sure the plugin functions you'll need are available
$wptoc_exists = function_exists('wptoc_toc') && function_exists('wptoc_as_ulist');
// If the plugin is available,
if($wptoc_exists) {
// Extract the table of contents from your content
$wptoc = wptoc_toc($wptoc_contents);
// Generate the table of contents html for that content
$wptoc_toc = wptoc_as_ulist($wptoc['toc']);
// Replace our original content with the content plus named anchors
// to allow linking to sections from the table of contents.
$wptoc_contents = $wptoc['html-with-anchors'];
// To display the toc now you just:
echo $wptoc_toc;
// Keep your markup for the TOC in this conditional
// so if the plugin goes missing
// so will the TOC output
}
// To display the content of the file with named anchors added to allow linking from the toc you:
// Keeping this outside the conditional so content always shows
echo $wptoc_contents;
// to do: preg_replace to insert a top anchor attached to TOC markup
}
add_action('thematic_categoryloop','child_cat_loop');