Использовал ваш код в сочетании с этим постом о предварительных запросах таксономии и придумал следующее:
<?php
$myquery = array(
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_key' => 'whatever',
'orderby' => 'meta_value',
'order' => 'DESC',
'post_type' => 'your_post_type',
);
$myquery['tax_query'] = array(
array(
'taxonomy' => 'your_tax',
'terms' => array('your_term'),
'field' => 'slug',
),
array(
'taxonomy' => 'your_other_tax',
'terms' => array('your_other_term'),
'field' => 'slug',
),
);
$queryObject = new WP_Query($myquery);
while( $queryObject->have_posts() ) : $queryObject->the_post();
$posts_array[] = $post->ID;
endwhile;
wp_reset_query();
$current = array_search($post->ID, $posts_array); // returns key
$prevID = $posts_array[$current - 1]; // get value from key 1 before
$nextID = $posts_array[$current + 1]; // get value from key 1 after
$prevLINK = get_permalink( $prevID );
$nextLINK = get_permalink( $nextID );
$prevTITLE = get_the_title( $prevID );
$nextTITEL = get_the_title( $nextID );
?>
<div class="post-nav">
<?php if (!empty($prevID)) { ?>
<a href="<?php echo $prevLINK; ?>" title="<?php echo $prevTITLE; ?>" class="left">« PREVIOUS</a>
<?php }
if (!empty($nextID)) { ?>
<a href="<?php echo $nextLINK; ?>" title="<?php echo $nextTITLE; ?>" class="right">NEXT »</a>
<?php } ?>
</div>
Работает для меня, и это чертовски круто ... сОптимизация запросов по расширенной таксономии объясняет Отто, что вы действительно можете хорошо контролировать следующие / предыдущие ссылки.Я не смог бы понять это без твоего оригинального кода, так что безумный реквизит тебе и Отто!
Я собираюсь попытаться настроить это еще дальше, автоматически определяя термины изстраница ... get_the_term_list()
может работать.