2015-03-25 3 views
2

У меня проблема.Wordpress - таксономический заказ на одну навигацию по специальному полю

Я хотел показать 2 кнопки навигации в single.php, основанный в таксономии (название налога: Temporada)

Теперь я Google его. Я нашел простой код, чтобы показать эти кнопки, но это есть заказ по дате, я хотел бы заказать, но пользовательское поле (пользовательское поле: numeroepisodio)

Это мой код:

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('&larr;' , '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('&rarr;' , 'Next post link' , 'customizr' )); 
    next_post_link('%link' , '<div id="temporadas-dropdown">SIGUIENTE <i class="fa fa-caret-right"></i></div>'); 
?> 
<?php endif; ?> 

Как можно отобразить кнопки, основанные в taxonomy = 'temporada' и порядке по meta_value = 'numeroepisodio'?

Спасибо за ваше время.

+0

Позвольте мне знать, если вам нужна дополнительная помощь .. – LumberHack

ответ

1

Почему бы не использовать объект WP_Query для этого, как показано ниже

$posts = get_posts(array(
    'post_type'   => 'post', 
    'posts_per_page' => -1, 
    'orderby'   => 'numeroepisodio', 
    'order'    => 'DESC', 
    'tax_query' => array(
        array(
          'taxonomy' => 'temporada' 
          ) 
)); 

if($posts): ?> 

// Do something here 

<? endif; 

Вы, возможно, потребуется изменить его немного и проверить синтаксис ..

+0

Привет, @ JudeRosario и спасибо за ответ. Как проверить следующую и предыдущую ссылку, используя это? – Ferrrmolina

+0

Вышеупомянутый код вызывает Loop, поэтому 'get_previous_post (true)' и 'get_next_post (true)' должен работать – LumberHack

+0

Спасибо за вашу помощь. – Ferrrmolina

Смежные вопросы