Использование Walker для меню и плагин wp-pagenavi

Добрый день.

На сайте есть категории:
Санатории (id=10)
Отели (id=11)

У каждой категории есть одинаковые регионы, по сути отличаются только отображением санаториев или отелей.

Для того чтобы не плодить дубли рубрик регионов сделал условие в archive.php :

 array(11), 'cat' => $catid));
}
elseif ($_GET['bctype'] == 'otel') {
query_posts(array('category__not_in' => array(10), 'cat' => $catid));
}
else {

}

// дальше простой цикл

?>

чтобы получать из меню нужный мне GET, прописал два Walker’a в funtions.php

classes );
    $class_names = ' class="' .esc_attr( $class_names ). '"';
    $output.= '
  • ID . '"' .$class_names. '>'; // назначаем атрибуты a-элементу $attributes.= !empty( $item->url ) ? ' href="' .esc_attr($item->url). '?bctype=sanatorium"' : ''; $item_output = $args->before; // проверяем, на какой странице мы находимся $current_url = (is_ssl()?'https://':'http://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $item_url = esc_attr( $item->url ); if ( $item_url = $current_url ) $item_output.= ''.$item->title.''; else $item_output.= $item->title; // заканчиваем вывод элемента $item_output.= $args->after; $output.= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); } } // собираем меню для отелей class otelWalker extends Walker_Nav_Menu { function start_el(&$output, $item, $depth, $args) { // назначаем классы li-элементу и выводим его //$class_names = join( ' ', $item->classes ); $class_names = ' class="' .esc_attr( $class_names ). '"'; $output.= '
  • ID . '"' .$class_names. '>'; // назначаем атрибуты a-элементу $attributes.= !empty( $item->url ) ? ' href="' .esc_attr($item->url). '?bctype=otel"' : ''; $item_output = $args->before; // проверяем, на какой странице мы находимся $current_url = (is_ssl()?'https://':'http://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $item_url = esc_attr( $item->url ); if ( $item_url = $current_url ) $item_output.= ''.$item->title.''; else $item_output.= $item->title; // заканчиваем вывод элемента $item_output.= $args->after; $output.= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); } } ?>
  • Дальше задача, выводить по 5 записей с цифровой постраничной навигацией, с этим всегда справлялся плагин wp-pagenavi, но на этот раз при адресе вида:

    Первая страница отображается нормально: http://www.site.ru/moscow?bctype=sanatorium
    но на второй он так же показывает данные с первой страницы…: http://www.site.ru/moscow/page/2?bctype=sanatorium

    В связи с чем может быть связана данная проблема?

    В рубриках где нет посторонних GET запросов отображаются страницы нормально.

    Автор zetrider 32 Articles
    Кодинг, дизайн, wordpress

    4 Комментарии

    1. насколько я знаю это для страниц? разделаем контент при помощи nextpage и получаем постраничный текст на странице.

      а в этой задаче записи выводятся в рубрике.

      Если использовать стандарт (next_posts_link и previous_posts_link), то тоже самое.

    2. Спасибо Sergey Biryukov:

      Обычно так бывает, когда в query_posts() не передаётся номер страницы (аргумент paged). Можно попробовать его добавить:

      $catid = get_query_var('cat');
      if ($_GET['bctype'] == 'sanatorium') {
      query_posts(array('category__not_in' => array(11), 'cat' => $catid, 'paged' => get_query_var('paged')));
      }
      elseif ($_GET['bctype'] == 'otel') {
      query_posts(array('category__not_in' => array(10), 'cat' => $catid, 'paged' => get_query_var('paged')));
      }

    Оставить комментарий

    Ваш электронный адрес не будет опубликован.


    *