2013-11-25 5 views
0

Разбивка на моей странице с вашими страницами работала нормально, но после добавления нескольких сообщений она сломалась - более старая ссылка не работает уже.WordPress сломанная разбивка на страницы

Пожалуйста, предложите, как я могу это исправить? Я пробовал отключать плагины, меняя постоянные ссылки и почти все, что мог легко найти в WordPress Codex.

Вот мой запрос с пагинацией:

<?php 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$args = array('post_type' => 'press' , 'posts_per_page' => 50 , 'paged' => $paged); 
query_posts($args); 
/*Setting up our custom query (In here we are setting it to show 12 posts per page and eliminate all sticky posts) */ 
//query_posts ($args);//query_posts($query_string . '&caller_get_posts=6&posts_per_page=12'); 
?> 
<ul class="griditemleft clear"> 
    <?php if(have_posts()) : while(have_posts()) : the_post(); ?> 
     <?php if (has_post_thumbnail()) : ?> 
      <li> 
       <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_post_thumbnail('category-thumbnail'); ?></a> 
       <h2 class="press-title"><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> 
      </li> 
     <?php endif; ?> 
    <?php endwhile; ?> 
</ul> 

<div class="nav-previous alignleft"><?php next_posts_link('Older posts'); ?></div> 
<div class="nav-next alignright"><?php previous_posts_link('Newer posts'); ?></div> 

<?php else : ?> 
    <p><?php _e('Sorry, no posts matched your criteria.'); ?></p> 
<?php endif; ?> 

ответ

0

Ее не совсем понятно, на что вы пытаетесь достичь, но я думаю, что вы хотите, чтобы внимательно посмотреть на http://codex.wordpress.org/Making_Custom_Queries_using_Offset_and_Pagination

Задание жестко закодированные смещения в запросах может и будет разбивать разбиение на страницы, так как смещение используется WordPress внутри, чтобы вычислять и обрабатывать разбиение на страницы.

Чтобы обойти это ограничение, вам нужно будет написать дополнительный код для ручного разбиения на страницы; вам нужно определить, имеет ли цикл дополнительные страницы, а затем динамически вычисляет соответствующее смещение для текущей страницы.

Код для управления настраиваемой разбиением на страницы будет происходить в вашем файле functions.php, но не внутри шаблона page.php. Вы можете установить начальное смещение, а также переопределить количество сообщений на странице. На приведенной выше ссылке codex показаны конкретные образцы.

Вы добавите действие до того, как запрос выполняется через

add_action('pre_get_posts', 'myprefix_query_offset', 1); 

и вам придется учесть настройки с помощью

add_filter('found_posts', 'myprefix_adjust_offset_pagination', 1, 2); 
Смежные вопросы