我正在尝试使用wp_query查询wordpress中的帖子。我想通过使用has_tag将帖子放在一个类别和查询中。我试着用
$args = array (
'post_type' => array( 'post' ),
'category_name' => 'footer',
);
// The Query
$social = new WP_Query( $args );
// The Loop
if ( $social->have_posts()&&has_tag('social') ) {
while ( $social->have_posts() ) {
$social->the_post();
the_content();
}
} rewind_posts();
?>
但这会加载所有帖子,并且不会只显示带有标记的帖子。
答案 0 :(得分:2)
执行此操作的正确方法是限制WP_Query本身。
E.g。
$args = array(
'post_type' => array( 'post' ),
'category_name' => 'footer',
'tag' => 'social'
);
$social = new WP_Query( $args );
if ( $social->have_posts() ) {
while ( $social->have_posts() ) {
$social->the_post();
the_content();
}
}
wp_reset_postdata();
要使用has_tag,您需要先设置全局发布数据,例如setup_postdata($ social),这会产生大量的条件和循环开销,只是为了在你可以在查询本身内完成它时过滤你的结果。
答案 1 :(得分:1)
你需要在每个被调用的帖子中而不是在开始时检查(注意你可能需要传入has_tag的第二个arg,post对象。
if ( $social->have_posts() ) {
while ( $social->have_posts() ) {
$social->the_post();
if( has_tag('social') {
the_content();
}
}
} rewind_posts();