2017-04-11 18 views
1

基本的にterm = artsの最初の投稿を表示したい場合は、存在しない場合はterm = guidesの投稿を表示します。条件付きクエリWP_query term on term

これは私の2つの議論です。私はループ外でhas_termを使用しようとしていましたが、動作しませんでした。

<?php 

if (has_term('arts', 'postkicker')){ 

$args=array(
    'post_type' => 'post', 
    'taxonomy' => 'postkicker', 
    'term'  => 'arts', 
    'orderby' => 'date', 
    'order'  => 'DESC' 
); 

} else { 

$args=array(
    'post_type' => 'post', 
    'taxonomy' => 'postkicker', 
    'term'  => 'guides', 
    'orderby' => 'date', 
    'order'  => 'DESC' 
); 

} 

$my_query = new WP_Query($args); 

if ($my_query->have_posts()) : 
    while ($my_query->have_posts()) : $my_query->the_post(); 
    the_title(sprintf("<h1><a href='%s' rel='bookmark'>", esc_url(get_permalink())), "</a></h1>"); 

    endwhile;wp_reset_postdata();endif; 
?> 

ループ内でhas_termを移動する必要がありますか? ありがとうございます!

答えて

1

あなたが近くにいる - >しかし、あなたの代わりにあなたが:)

を始めるために十分であるべき

<?php 

$first_args=array(
    'post_type' => 'post', 
    'taxonomy' => 'postkicker', 
    'term'  => 'arts', 
    'orderby' => 'date', 
    'order'  => 'DESC' 
); 


$second_args=array(
    'post_type' => 'post', 
    'taxonomy' => 'postkicker', 
    'term'  => 'guides', 
    'orderby' => 'date', 
    'order'  => 'DESC' 
); 

$first_query = new WP_Query($first_args); 

if ($first_query->have_posts()) { 
    // Do your HTML 
} 
else { 
$second_query = new WP_Query($second_args); 
if ($second_query->have_posts()){ 
    // Do your HTML 
    }  
} 

に試してみてください