Множество сайтов, которые я создаю для клиента, будут представлять собой сообщения с разными страницами для сообщений типа «Топ-10» и т. Д. Это означает, что мне нужно разбивать страницы на разные страницы. Лучшим способом, который я нашел для этого, является использование <!--nextpage-->
в содержании для разделения сообщения и создания страниц. Чтобы перемещаться по страницам, я попытался использовать get_pagenum_link
. Здесь есть мой полный код:
function postPagination() { global $paged; $paged = (get_query_var('page')) ? get_query_var('page') : 1; $output .= "<div class='pagination'>"; $output .= "<a href='".get_pagenum_link($paged - 1)."'>Previous Page</a>"; $output .= "<a href='".get_pagenum_link($paged + 1)."'>Next Page</a>"; $output .= "</div>"; return $output; }
У меня две основные проблемы:
1) Ссылки находятся в форме http://domain.dev/2014/03/03/post-title/2/page/2
, которая возвращает 404. Кроме того, если я нажму ссылку «Следующая страница», она вернет /post-title/2/page/3
, т. е. часть / page / 3 верна, но она все еще находится на странице 2. Если я перейду в /post-title/page/3
или что-то еще, он просто перенаправит обратно на первую страницу , /post-title/3/
отлично работает. Я предполагаю, что это связано с постоянными отношениями.
2) Код предыдущей страницы вообще не работает, он просто возвращает ссылку «Текущая страница», например, если вы на странице 2, ссылка «Предыдущая страница» вернёт /post-title/2/
. т.е. он даже не имеет /page/2
бит в конце.
Извините, если это сбивает с толку, с удовольствием ответим на любые вопросы и при необходимости объясним. Я должен также упомянуть, что этот код является функцией, которая находится в functions.php и будет вызываться на страницах контента.
Спасибо за любую помощь в устранении моих двух проблем, поэтому предыдущие / следующие ссылки работают правильно 🙂
То, что вы делаете, похоже, воспроизводит то, что wp_link_pages()
:
Отображает ссылки на страницы для постраничных сообщений (т. Е. Включает Quicktag один или несколько раз). Это работает почти так же, как link_pages () (устарело), причем разница заключается в том, что аргументы приведены в формате строки запроса. Этот тег должен находиться внутри The_Loop.
Используя один или несколько предоставленных аргументов …
$defaults = array( 'before' => '<p>' . __( 'Pages:' ), 'after' => '</p>', 'link_before' => '', 'link_after' => '', 'next_or_number' => 'number', 'separator' => ' ', 'nextpagelink' => __( 'Next page' ), 'previouspagelink' => __( 'Previous page' ), 'pagelink' => '%', 'echo' => 1 );
… вы должны быть в состоянии приблизиться к этой разметке.
В частности, я считаю, что это сделает (непроверено):
$defaults = array( 'before' => '<div class='pagination'>', 'after' => '</div>', 'nextpagelink' => __( 'Next page' ), 'previouspagelink' => __( 'Previous page' ), );