很难得到我的分类法。php运行良好。
我使用分类法。php来列出我在特定类别中的所有帖子,但它显示了我在所有类别中的所有帖子。
这是我的代码:
<ul class="scenes cf">
<?php
$args1 = array(
\'post_type\'=>\'artistes\',
\'orderby\' => \'menu_order\',
\'order\' => \'ASC\',
\'meta_query\' => array(
array(
\'key\' => \'date_de_lartiste\',
\'value\' => \'\',
\'compare\' => \'LIKE\'
),
array(
\'key\' => \'heure_de_lartiste\',
\'value\' => \'\',
\'compare\' => \'LIKE\'
)
)
);
add_filter(\'posts_orderby\',\'orderbyreplace\');
$loop = new WP_Query( $args1 );
remove_filter(\'posts_orderby\',\'orderbyreplace\');
?>
<?php $todaysDate = date(\'Y/m/d\'); ?>
<?php if ($loop->have_posts() ) { while ( $loop->have_posts() ) { $loop->the_post(); ?>
<?php
$date = get_field(\'date_de_lartiste\');
$newDate = date("d/m/Y", strtotime($date));
?>
<li>
<div class="info">
<?php the_post_thumbnail( \'artists_list\' )?>
<p><?php the_title(); ?></p>
<p class="music_style"><?php echo $newDate ?> - <?php the_field(\'heure_de_lartiste\'); ?></p>
</div>
<a href="<?php the_permalink(); ?>" class="read_more"><?php _e(\'Read More\'); ?></a>
</li>
<?php
}
} else {
?>
<li class="cf">
<p>No posts</p>
</li>
<?php
}
/* Restore original Post Data */
wp_reset_postdata();
?>
</ul>
有人能帮我弄明白吗?如何仅显示当前分类中的帖子?
非常感谢,
Jhon公司
EDIT:
我知道这是最好的方法,但我只是用以下代码修复了它:
$category = get_query_var( \'term\' );
在我的$args中,我添加了:
\'tax_query\' => array(
array(
\'taxonomy\' => \'scenes\',
\'field\' => \'slug\',
\'terms\' => "$category"
)
),
SO网友:Tom J Nowell
您没有提到您正试图通过元键过滤分类法归档,但这就是代码中发生的事情。
问题是,您正在放弃为您准备的分类查询(糟糕!在此过程中数据库工作加倍),并创建自己的查询,但您从未告诉它要查找哪个术语,WP\\U查询无法读懂思想,因此它会查看所有艺人,because you never told it which one to look for.
你应该使用pre_get_posts
筛选以在主循环查询发生之前修改查询参数。这样就不需要第二次查询,而且不会浪费时间
E、 g.排除类别:
// Load our function when hook is set
add_action( \'pre_get_posts\', \'rc_modify_query_exclude_category\' );
// Create a function to excplude some categories from the main query
function rc_modify_query_exclude_category( $query ) {
// Check if on frontend and main query is modified
if ( ! is_admin() && $query->is_main_query() && ! $query->get( \'cat\' ) ) {
$query->set( \'cat\', \'-5\' );
} // end if
}
Taken from remicorson.com这样,您可以通过查看$query
对象,并添加meta_query
除其他事项外。这也简化了taxonomy.php
返回到标准的post循环,将所需的数据库工作量减半。