Проблема должна быть в переменной $post
.Перед выполнением этой строки:
while ($my_query->have_posts()) : $my_query->the_post(); ?>
переменная $post
содержит данные текущей записи (я полагаю, этот код находится внутри single.php?).Но после этой строки и внутри цикла, $post
var содержит ваши последние последние сообщения, одну за другой (вы устанавливаете переменную $post
при вызове the_post()
).
После этого цикла (ниже endwhile
), $post
будет содержать данные последнего сообщения, полученного в этом цикле.
previous_post_link()
и next_post_link()
необходимо получить доступ к $post
для ссылки на текущее сообщение, ноони берут в качестве ссылки последнее сообщение о ваших последних сообщениях, а не сообщение, читаемое вашим пользователем.
Я не знаю, какова html-структура этой страницы, но я бы добавил последние сообщениясписок ПОСЛЕ навигационных ссылок (далее, предыдущие сообщения).Это решит проблему, если я прав, и, по моему мнению, это будет семантически понятнее.
Или вы также можете попробовать это:
Добавьте эту строку:
$currentPost = clone $post;
До:
$my_query = new WP_Query($args);
И добавьте эту строку:
<?php $post = $currentPost; ?>
Перед вызовом функций ссылок следующего и предыдущего поста.