i’ve an issue here.
I like to show 2 navigation buttons in single.php, based in a taxonomy(Tax name: temporada)
Now i google it. I found a simple code to show this buttons but, this are order by date, i like to order this, but custom field (custom field: numeroepisodio)
This is my code:
functions.php
add_filter( 'get_next_post_join', 'navigate_in_same_taxonomy_join', 20);
add_filter( 'get_previous_post_join', 'navigate_in_same_taxonomy_join', 20 );
function navigate_in_same_taxonomy_join() {
global $wpdb;
return " INNER JOIN $wpdb->term_relationships AS tr ON p.ID = tr.object_id INNER JOIN $wpdb->term_taxonomy tt ON tr. term_taxonomy_id = tt.term_taxonomy_id";
}
add_filter( 'get_next_post_where' , 'navigate_in_same_taxonomy_where' );
add_filter( 'get_previous_post_where' , 'navigate_in_same_taxonomy_where' );
function navigate_in_same_taxonomy_where( $original ) {
global $wpdb, $post;
$where = '';
$taxonomy = 'temporada';
$op = ('get_previous_post_where' == current_filter()) ? '<' : '>';
$where = $wpdb->prepare( "AND tt.taxonomy = %s", $taxonomy );
if ( ! is_object_in_taxonomy( $post->post_type, $taxonomy ) )
return $original ;
$term_array = wp_get_object_terms( $post->ID, $taxonomy, array( 'fields' => 'ids' ) );
$term_array = array_map( 'intval', $term_array );
if ( ! $term_array || is_wp_error( $term_array ) )
return $original ;
$where = " AND tt.term_id IN (" . implode( ',', $term_array ) . ")";
return $wpdb->prepare( "WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = 'publish' $where", $post-> post_date, $post->post_type );
}
single.php
<?php if ( get_previous_post() != null ) : ?>
<?php
$singular_nav_previous_text = apply_filters( 'tc_singular_nav_previous_text', _x( '←' , 'Previous post link' , ' customizr' ) );
previous_post_link( '%link' , '<div id="temporadas-dropdown"><i class="fa fa-caret-left"></i> ANTERIOR</div>' );
?>
<?php endif; ?>
<?php if ( get_next_post() != null ) : ?>
<?php
$singular_nav_next_text = apply_filters( 'tc_singular_nav_next_text', _x( '→' , 'Next post link' , 'customizr' ) );
next_post_link( '%link' , '<div id="temporadas-dropdown">SIGUIENTE <i class="fa fa-caret-right"></i></div>' );
?>
<?php endif; ?>
How can display the buttons based in taxonomy = 'temporada'
and order by meta_value = 'numeroepisodio'
?
Thanks for your time.
Why not use the WP_Query object for this like below
You may need to modify it slightly and check syntax ..