2017-02-07 3 views
1

У меня возникли проблемы с пониманием или даже диагностикой того, почему разбиение на страницы не отображается в моем файле home.php, который я создал в моей теме 20-летнего ребенка. У меня 3 сообщения в блоге, и я хочу показать только один, с разбивкой на страницы внизу.Почему в этом шаблоне WordPress не отображаются ссылки на страницы?

Я запускаю WordPress 4.7.2, и согласно статье this я должен использовать the_posts_pagination(), чтобы отображать разбиение на страницы для моих сообщений, но ничего не появляется. Я настроить пользовательский запрос, как описано here (проходящей Params как массив вместо строки запроса):

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 

$query = new WP_Query(array('posts_per_page' => 1, 'paged' => $paged)); 

Есть 3 сообщений, и если я установить запрос на это, то я вижу, все три на моем доме .php страница:

$query = new WP_Query(array('posts_per_page' => 3, 'paged' => $paged)); 

Когда я установил 'posts_per_page' 1, а затем вызвать the_posts_pagination(), я вижу только первый пост, и не пагинацию. Я не понимаю, почему не отображается разбиение на страницы, так как там больше страниц для отображения. Тем не менее, я по-прежнему новичок в WordPress, поэтому я уверен, что я просто пропустил что-то очевидное.

Вот мой полный код для справки:

<?php 

get_header(); 

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 

$query = new WP_Query(array('posts_per_page' => 1, 'paged' => $paged)); 

?> 

<div class="wrap"> 
    <div id="primary" class="content-area"> 
     <main id="main" class="site-main" role="main"> 

      <?php 

      if ($query->have_posts()) : 

       /* Start the Loop */ 
       while ($query->have_posts()) : $query->the_post(); 

        the_title('<h1>', '</h1>'); 
        the_content(); 

       endwhile; 

       the_posts_pagination(); 

      else : 

       get_template_part('template-parts/post/content', 'none'); 

      endif; 

      ?> 

     </main><!-- #main --> 
    </div><!-- #primary --> 
</div><!-- .wrap --> 

<?php get_footer(); 

EDIT ПОСЛЕ ВОПРОСА ANSWERED

ОК, так что кажется, что даже если я установить «posts_per_page», что я хотел, чтобы отобразить здесь:

$query = new WP_Query(array('posts_per_page' => 1, 'paged' => $paged)); 

Wordpress все еще полагался на установление ngs в Dashboard-> Settings-> Reading-> Страницы блога показывают не более, чтобы определить разбивку на страницы, поэтому мне пришлось туда и установить это. Я до сих пор не мог the_posts_pagination правильно работать, но это сделал:

previous_posts_link(' << Newer Entries '); 
next_posts_link(' Older Entries >> ', $query->max_num_pages); 
+0

http://wordpress.stackexchange.com/questions/180784/what-is-the-difference-between-paged-and-page –

+0

@EdDogan Спасибо за статью, которая помогает мне понять разницу по страницам и странице , Я думаю, что я правильно использую страницы, потому что это страница индекса сообщений блога (home.php), правильно? Если я удалю условный оператор и просто получаю запрос «paged» var, я все равно получаю тот же результат. –

+0

Является ли результат тем же, если вы используете другие функции разбиения на страницы, такие как ' ' –

ответ

1

the_posts_pagination() не распознает новый запрос, но он читает из глобального WP_Query, хранящегося в $GLOBALS['wp_query'].

На страницах блога не более настройка в разделе «Настройки»> «Чтение на панели администрирования» используется здесь как posts_per_page.

Вы можете найти несколько способов изменить запрос по умолчанию в this article.

+0

Странно, что даже если запрос, который получает сообщения, работает через настройку 'posts_per_page' в новом WP_Query мне все равно нужно войти в настройки, чтобы получить разбиение на страницы. WordPress странно до сих пор! Спасибо за помощь! –

Смежные вопросы