Blade WordPress - пользовательский тип страницы, не отображающий разбиение на страницы

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

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

Если я использую то, что настроил ниже, я получаю сообщение об ошибке: Fatal error: Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: syntax error, unexpected end of file in web/app/uploads/cache/0cefb280e2bc87c5c0311d7606b77c153f8da2b0.php on line 531

Я пробовал:

  • установка WP_CACHE в false в файле wp-config
  • попробовал установить prev_text и next_text на true
  • без $paginate_linkssection
  • удаление рассматриваемой папки cache (она просто воссоздается)
  • добавление @php wp_reset_postdata() @endphp перед закрывающим @endwhile, но это дает мне неожиданный конец ошибки if
  • используя {!! get_the_posts_navigation() !!}, чтобы посмотреть, что это будет делать

Я полностью застрял - я раньше не сталкивался с чем-то подобным с WP (хотя я новичок в шаблонах Blade). Я могу получить сообщения для отображения в этом шаблоне настраиваемой страницы, но не могу настроить разбиение на страницы - до сих пор я застрял в нем на весь день.

 @extends('layouts.app')
    @section('content')
      @php

        global $post;
            $args = array(
                'prev_text'      => false,
                'next_text'      => false,
                'format'         => 'page/%#%#posts'
            );

      @endphp
      <div class = "news-page-content">
        <div class = "max-wrap">
          <div id = "article-list" class = "article-list-container">

            <div class = "article-list">
              @php
                global $wp_query;

                  $wp_query = new WP_Query ( array(
                    'post_type'          => 'post',
                    'post_status'        => 'publish',
                    'posts_per_page'     => 4,
                    'orderby'            => 'DESC',
                    'ignore_sticky_posts'=> true,
                    'nopaging'           => false,
                    'paged'              => true
             ));
              @endphp
              @if ( $wp_query->have_posts() )
                @while( $wp_query->have_posts() ) @php $wp_query->the_post() @endphp
                <div>
                  <a href = "{{ get_the_permalink() }}">

                    <h3>{{ the_title() }}</h3>
                    <h4>{{ get_the_date( 'm/d/Y' ) }}</h4></a>
                </div>
                @endwhile
                  @php wp_reset_query() @endphp
              @endif
              <div class = "bottom-pager">
                    <div class = "prev-next">@php posts_nav_link(' ','PREV PAGE','NEXT PAGE') @endphp</div>

                    <div class = "pager">
                        {!! paginate_links($args) !!}
                    </div>
                </div>
            </div>
          </div>
        </div>
      </div>

@endsection
Как убрать количество товаров в категории WooCommerce
Как убрать количество товаров в категории WooCommerce
По умолчанию WooCommerce показывает количество товаров рядом с категорией, как показано ниже.
0
0
456
1

Ответы 1

Насколько я понимаю, paginate_links() работает с global $wp_query, поэтому вы столкнетесь с проблемами при использовании специального запроса. Вы можете попробовать следующее? вместо этого

$postlist_query = new WP_Query ( array(

Можете ли вы отрегулировать global $wp_query

global $wp_query;
$wp_query = new WP_Query ( array(

ТАКЖЕ: не забудьте сбросить запрос, как только вы закончите с ним, используя wp_reset_query() после вашего цикла


Заявление об ограничении ответственности: Я вообще против изменения global $wp_query, но у него есть варианты использования.

Я обновил свой код в исходном сообщении до того, что, как мне кажется, вы имеете в виду. Я попробовал, но проблемы остались. Поставил wp_reset_query () после цикла и получил ошибку unexpected 'endif' (T_ENDIF). Перемещение его после конца оператора if тоже не работает (и, вероятно, в любом случае не должно)

Dejsa Cocan 27.10.2018 18:53

похоже, вам не хватает @endphp в этой строке: @while( $wp_query->have_posts() ) @php($wp_query->the_post() ) @endphp

Craig Wayne 28.10.2018 22:28

Хорошо, сделал это ... однако нумерация страниц по-прежнему не отображается. Понятия не имею, почему - я чувствую, что все должно быть правильно, но нет - по-прежнему нет разбивки на страницы

Dejsa Cocan 29.10.2018 03:59

Другие вопросы по теме