I found this:
<?php
function wpse73190_adjacent_post_sort( $orderby )
{
return "ORDER BY p.menu_order DESC LIMIT 1";
}
add_filter( 'get_previous_post_sort', 'wpse73190_adjacent_post_sort' );
add_filter( 'get_next_post_sort', 'wpse73190_adjacent_post_sort' );
wordpress.stackexchange.com - , ... , , - , , , .
:
, - , Wordpress DB .
function get_adjacent_episode($post, $prev_or_next) {
global $wpdb;
$prev_or_next = ($prev_or_next === 'previous') ? 'DESC' : 'ASC';
$operator = ($prev_or_next === 'previous') ? '<' : '>';
$cur_episode = get_post_meta($post->ID, 'numeroepisodio', true);
$query = sprintf("select p.ID from $wpdb->posts p
inner join $wpdb->postmeta m
on p.ID = m.post_id
inner join $wpdb->terms_relationships r
on p.ID = r.object_id
where r.term_taxonomy_id = (select term_taxonomy_id from $wpdb->term_taxonomy where taxonomy = '%s' limit 1)
and p.post_type = 'post' and m.meta_key = '%s' and m.meta_value %s %s
order by m.meta_key %s limit 1", 'temporada', 'numeroepisodio', $operator, $cur_episode, $prev_or_next);
$adjacent_post = $wpdb->get_results($query);
return $adjacent_post;
}
:
$next_post = get_adjacent_episode($post, 'next');
$prev_post = get_adjacent_episode($post, 'previous');
, select p.ID, $next_post->ID, , , .