получить соседний пост по мета-ключу и мета-значению

Я пытаюсь ограничить предыдущую / следующую навигацию сообщениями, которые имеют одинаковое значение meta_value для определенного ключа meta_key. Я знаю, что об этом спрашивали раньше, но я не мог выбрать рабочий ответ. И все, что я мог придумать сам, это:

$keyword = get_post_meta($post->ID, 'keyword', true);
$prevPost = get_previous_post();
$args = array('meta_key' => 'keyword', 'meta_value' => $keyword, 'posts_per_page' => 1, 'include' => $prevPost->ID);
$prevPost = get_posts($args); foreach ($prevPost as $post) {
setup_postdata($post);
[...]
wp_reset_postdata();
}

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

0

Решение

Плагин «Ambrosite Next / Previous Post Link Plus»https://wordpress.org/plugins/ambrosite-nextprevious-post-link-plus/
..кажется, делает работу хорошо

Для дальнейшего оформления результатов можно даже использовать его следующим образом

$prev = previous_post_link_plus( array('return' => 'id') );
query_posts('p='.$prev); while (have_posts()) : the_post();
[...your stuff here...]
endwhile; wp_reset_query();
$next = next_post_link_plus( array('return' => 'id') );
query_posts('p='.$next); while (have_posts()) : the_post();
[...your stuff here...]
endwhile; wp_reset_query();
0

Другие решения

Других решений пока нет …