previous_post_link() и next_post_link() с пользовательским типом записи?
Я нахожусь в файле single-work.php
для пользовательского типа записи work
, внутри цикла.
Пытаюсь создать две ссылки на предыдущую и следующую запись.
Использую этот код:
<?php previous_post_link(); ?>
и
<?php next_post_link(); ?>
Но ничего не отображается. Что я упускаю?
Вот мой код, очень простой:
<?php get_header(); ?>
<div class="full" >
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
<?php next_post_link('%link', 'Следующая запись »'); ?>
<?php next_post_link('%link', 'Следующая запись »'); ?>
<?php endwhile; // конец цикла. ?>
</div><!--/full-->
<?php get_footer(); ?>

В вашем коде я вижу, что ссылки на следующую и предыдущую записи находятся внутри цикла while, чего быть не должно. Они должны располагаться за пределами цикла, вот так:
<?php get_header(); ?>
<div class="full" >
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
<?php endwhile; // конец цикла. ?>
<?php next_post_link('%link', 'Следующая запись »'); ?>
<?php next_post_link('%link', 'Следующая запись »'); ?>
</div><!--/full-->
<?php get_footer(); ?>
Или вы можете найти подробное объяснение здесь.
В указанной выше статье я нашел постраничную навигацию с цифрами, но там также очень подробно объясняется, как именно работает пагинация.

Прочитайте документацию.
Эта функция не будет работать (завершится молчаливым сбоем), если в вашем php.ini включен mysql.trace_mode. Если вы не можете редактировать этот файл, попробуйте добавить
ini_set( 'mysql.trace_mode', 0 );
в файл functions.php вашей темы.
Это может решить вашу проблему, как решило мою.

Функции правильные; задайте параметры
<?php next_post_link('%link', 'Следующая запись »'); ?>
<?php next_post_link('%link', 'Следующая запись »'); ?>
Что ж, не видя ваш код, сложно сказать почему. Есть ли какие-то ошибки или предупреждения PHP?
Обновление
Небольшой пример
<?php query_posts( array( 'post_type' => 'page', 'post_status' => 'publish' ) ) ?>
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post() ?>
<!-- делаем что-то -->
<div id="nav-single">
<div class="left"><?php previous_post_link(); ?></div>
<div class="right"><?php next_post_link(); ?></div>
</div>
<?php endwhile; // конец цикла. ?>
<?php wp_reset_query(); ?>
<?php else : ?>
<!-- делаем что-то другое здесь -->
<?php endif ?>

Эти параметры необязательные, их указание ничем не помогает. Нет никаких ошибок PHP или чего-то еще, поэтому мне сложно разобраться, просто молчание..

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

И CPT находится внутри стандартного цикла? В вашем коде стандартный цикл, а не несколько для CPT. Но да, можно подключить CPT внутри цикла и добавить CPT.
