I’ve whittled things down to the point where the only baseline change from WordPress 2.0.2 is in the next_posts_link function of the wp-includes/template-functions-links.php
file. The change is necessary because WPopac rewrites the SQL search queries in a way that’s incompatible with a piece of this function, but necessary for performance reasons.
Here’s how my version reads:
`
function next_posts_link($label='Next Page »', $max_page=0) {
global $paged, $result, $request, $posts_per_page, $wpdb, $max_num_pages;
if ( !$max_page ) {
if ( isset($max_num_pages) ) {
$max_page = $max_num_pages;
} else {
preg_match('#FROM\s(.*)\sGROUP BY#siU', $request, $matches);
// added April 5 2006 by Casey Bisson to support WPopac
// necessary because the preg_match above fails with some queries
if(!$fromwhere)
$fromwhere = $wpdb->posts;
// changed April 5 2006 by Casey Bisson to speed the query by eliminating
// the slow DISTINCT clause
//$numposts = $wpdb->get_var(“SELECT COUNT(DISTINCT ID) FROM $fromwhere”);
$numposts = $wpdb->get_var(“SELECT COUNT(*) FROM $fromwhere”);
$max_page = $max_num_pages = ceil($numposts / $posts_per_page);
}
}
if ( !$paged )
$paged = 1;
$nextpage = intval($paged) + 1;
if ( (! is_single()) && (empty($paged) || $nextpage < = $max_page) ) {
echo '<a href=“';
next_posts($max_page);
echo '”>'. preg_replace('/&([^#])(?![a-z]{1,8};)/', '&$1', $label) .'</a>';
}
}
`