Проблемы с разбивкой по страницам с использованием WP_Paginate Plugin

Поэтому я прочитал больше сообщений и статей об этой проблеме, чем я хотел бы признать, и до сих пор ничего не могу найти. Вот проблема: я не могу получить разбивку на страницы, и она показывает все одинаковые сообщения снова и снова, как я видел в других сообщениях.

Вот что я использую (2 отдельных шаблона для разных категорий):

<?php $paged = get_query_var( 'page' ); query_posts('cat=4&paged='.$paged); if(have_posts()) { while(have_posts()) { the_post(); ?> 

Он отлично работает, но затем я перехожу на единственную страницу на сайте, которая использует один и тот же код в цикле, другую категорию (3), и там он не работает, это не опечатка и т. Д.

Я тоже устал:

 if(have_posts()){ $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts($query_string . "&cat=4"); while(have_posts()){ the_post(); global $more; $more = 0; в if(have_posts()){ $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts($query_string . "&cat=4"); while(have_posts()){ the_post(); global $more; $more = 0; 

ИЛИ

 query_posts('cat=3&paged='.get_current_page()); if(have_posts()){ while(have_posts()){ the_post(); global $more; $more = 0; в query_posts('cat=3&paged='.get_current_page()); if(have_posts()){ while(have_posts()){ the_post(); global $more; $more = 0; 

С помощью функции get_current_page я использовал этот хак, который, как мне сказал, WP VIP, не был способ сделать что-то (но он работал для обеих страниц):

 /* Get current page for paginaton navigation */ function current_page() { $pageURL = 'http'; //check what if its secure or not if ($_SERVER["HTTPS"] == "on") { $pageURL .= "s"; } //add the protocol $pageURL .= "://"; //check what port we are on if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; } else { $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; } //cut off everything on the URL except the last 3 characters $urlEnd = substr($pageURL, -3); //strip off the two forward shashes $page = str_replace("/", "", $urlEnd); //return just the number return $page; } 

Ваше решение здесь наиболее правильно.

  if(have_posts()){ $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts($query_string . "&cat=4"); while(have_posts()){ the_post(); global $more; $more = 0; в  if(have_posts()){ $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts($query_string . "&cat=4"); while(have_posts()){ the_post(); global $more; $more = 0; 

… но имеет некоторые ошибки. Пытаться:

 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $category = get_category_by_slug('your-category-slug'); query_posts(array('paged' => $paged, 'cat' => $category->term_id)); while(have_posts()){ the_post(); global $more; $more = 0; //output here } в $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $category = get_category_by_slug('your-category-slug'); query_posts(array('paged' => $paged, 'cat' => $category->term_id)); while(have_posts()){ the_post(); global $more; $more = 0; //output here } 

Обратите внимание, что использование идентификатора категории напрямую не будет работать на WP VIP. Идентификаторы категории не соответствуют тому, что у вас локально.