Вопрос или проблема
Я использую пользовательский тип записи с 9 записями. На какую бы запись я ни нажал, навигация по записям показывает одну и ту же запись. Когда я перехожу к этой записи, она показывает только другую запись в своей таксономии. С этого момента я могу перемещаться только между двумя записями в этой таксономии. Я использую код ниже:
$args = array(
'prev_text' => '<span class="meta-nav"><</span> Предыдущая: %title',
'next_text' => 'Следующая: %title <span class="meta-nav">></span>',
);
echo get_the_post_navigation( $args );
Каков контекст? Как вы создали свои девять пользовательских записей?
Возможная причина – импорт из, например, таблицы (CSV); у меня есть ситуация, когда вновь созданные пользовательские записи получают правильные ссылки, но все импортированные записи имеют неправильные ссылки:
- Все, кроме двух записей, а именно запись-ID “1941” и “1987”, ссылаются “предыдущая” на “1941”, а “следующая” на “1987”.
- Запись “1941” не имеет “предыдущей”, а “следующая” – запись “1943”.
- Запись “1987” не имеет “следующей”, а “предыдущая” – “1942”.
“1987” – это первая запись, не импортированная из таблицы; а “1941” ни в коем случае не самая старая импортированная (это “1902”; все импортированные нумеруются последовательно 1902, 1903, … , 1977).
Ответ или решение
Проблема с функцией get_the_post_navigation()
в WordPress, когда она всегда отображает одни и те же посты, может быть связана с несколькими факторами, особенно если вы используете пользовательский тип записи и сталкиваетесь с проблемами навигации между постами, импортированными из источников, таких как CSV. Рассмотрим возможные причины и решения вашей проблемы более детально.
Причины
-
Неправильные ссылки на посты: Импортированные посты могут иметь некорректно установленные связи, что вызывает постоянное отображение одних и тех же постов. Это особенно актуально для пользовательских типов записей, где параметры таксономии и привязки могут быть неправильно настроены.
-
Настройки таксономии: Возможно, ваши посты не имеют правильных таксономий или связаны с неправильными значениями. Это может привести к тому, что функция
get_the_post_navigation()
будет искать посты только в рамках одной таксономии. -
Использование функции: Ваша реализация функции
get_the_post_navigation()
может требовать дополнительной настройки, особенно если вы используете таксономические или пользовательские запросы.
Решения
-
Проверка и исправление таксономий:
Убедитесь, что ваши посты правильно привязаны к таксономиям. Вы можете сделать это, проверив базу данных (таблицыwp_terms
,wp_term_relationships
иwp_term_taxonomy
). Убедитесь, что все посты имеют необходимые записи и что связи между постами корректны. -
Использование аргумента
taxonomy
вget_the_post_navigation()
:
Вы можете попробовать указать явный параметр таксономии в функции, если это актуально для вашей ситуации. Например:$args = array( 'prev_text' => '<span class="meta-nav"><</span> Previous: %title', 'next_text' => 'Next: %title <span class="meta-nav">></span>', 'taxonomy' => 'ваша_таксономия', // Укажите свою таксономию ); echo get_the_post_navigation($args);
-
Проверка импорта данных:
Если вы импортировали посты из CSV, проверьте корректность данных. Возможно, некоторые записи были неправильно отформатированы или потеряли свои связи. Вы можете использовать плагины для проверки целостности данных, такие как "WP All Import" или другие инструменты, которые помогут проверить и исправить данные. -
Кэширование и плагины:
Проверьте, не использует ли ваш сайт кэширование, которое может влиять на отображение постов. Отключите плагины кэширования и проверьте, решает ли это проблему.
Заключение
Проблема с навигацией по постам, особенно в контексте пользовательских типов записей и импортированных сообщений, может быть вызвана различными факторами. Совершив шаги по проверке и исправлению связей между постами, а также учитывая параметры таксономии в функции, вы можете устранить неисправности и обеспечить правильное отображение навигации. Если проблема сохраняется, можно также рассмотреть консультацию с разработчиком для более глубокой диагностики.