Я пытаюсь настроить разбиение на страницы для созданного мной настраиваемого шаблона страницы, который предназначен для отображения всех сообщений (когда я закончу, это будет целевая страница архива).
У меня есть настройки, чтобы показывать заданное количество сообщений на странице с помощью 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-config
prev_text
и next_text
на true$paginate_links
sectioncache
(она просто воссоздается)@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
Насколько я понимаю, 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
, но у него есть варианты использования.
похоже, вам не хватает @endphp
в этой строке: @while( $wp_query->have_posts() ) @php($wp_query->the_post() ) @endphp
Хорошо, сделал это ... однако нумерация страниц по-прежнему не отображается. Понятия не имею, почему - я чувствую, что все должно быть правильно, но нет - по-прежнему нет разбивки на страницы
Я обновил свой код в исходном сообщении до того, что, как мне кажется, вы имеете в виду. Я попробовал, но проблемы остались. Поставил wp_reset_query () после цикла и получил ошибку
unexpected 'endif' (T_ENDIF)
. Перемещение его после конца оператора if тоже не работает (и, вероятно, в любом случае не должно)