поскольку никто не смог помочь по топику
http://forum.maxsite.org/viewtopic.php?id=902
полез в код функции плагина wp-pagenavi203
function wp_pagenavi($before=' ', $after=' ', $prelabel='«', $nxtlabel='»') { global $request, $posts_per_page, $wpdb, $paged; $pages_to_show = 5; $half_pages_to_show = round($pages_to_show/2); if (!is_single()) { if (get_query_var('what_to_show') == 'posts') { preg_match('#FROM\s(.*)\sGROUP BY#siU', $request, $matches); //preg_match('#FROM\s(.*)\sORDER BY#siU', $request, $matches); $fromwhere = $matches[1]; $numposts = $wpdb->get_var("SELECT COUNT(DISTINCT ID) FROM $fromwhere"); $max_page = ceil($numposts /$posts_per_page); } else { $max_page = 999999; } if(empty($paged)) { $paged = 1; } if($max_page > 1) { echo "$before Pages ($max_page): <b>"; if ($paged >= ($pages_to_show-1)) { echo '<a href="'.get_pagenum_link().'">« First</a> ... '; } previous_posts_link($prelabel); for($i = $paged - $half_pages_to_show; $i <= $paged + $half_pages_to_show; $i++) { if ($i >= 1 && $i <= $max_page) { if($i == $paged) { echo "[$i]"; } else { echo ' <a href="'.get_pagenum_link($i).'">'.$i.'</a> '; } } } next_posts_link($nxtlabel, $max_page); if (($paged+$half_pages_to_show) < ($max_page)) { echo ' ... <a href="'.get_pagenum_link($max_page).'">Last »</a>'; } echo "$after</b>"; } } }
Судя по тому, что в выдаче число страниц выводится 999999, функция is_single() позвращает значение true ? не зависимо от того, что выводится, отдельная страница, или лента сообщенией.
Почему такое может быть?
Вы ошиблись. Вот это условие, которое отвечает за $max_page
Но никак не is_single().
Спасибо, дейсвительно ошибся, еще не совсем привык к нотации, точнее не доконца вспомнил нотацию С
пошел разбираться и выяснил, что
get_query_var(‘what_to_show’) возвращает пустое значение.