帖子类型是按。 分类是按类型(slug = presstype)。 术语是新闻稿(slug = release)。
我只是想在我的函数文件中添加一些PHP,它将从普通的Wordpress自定义帖子类型循环(例如mydomain.com/press)中排除任何称为“release”的帖子,但不是来自其他可能包含印刷的自定义循环。
搜索了许多不同的方法,但无法真正找到有效的解决方案。有人知道函数.php最简单的代码吗?
答案 0 :(得分:1)
您是否尝试过将release
一词移除pre_get_posts
?为了语义清晰,您可以使用is_post_type_archive()
函数将其包装起来。因此,仅在/press
页面(新闻档案)上,tax_query
参数设置为排除任何帖子,其中包含术语slug release
。
add_action( 'pre_get_posts', 'remove_release_from_press' );
function remove_release_from_press( $query ) {
if( is_post_type_archive( 'press' ) ){
$tax_query = array([
'taxonomy' => 'presstype',
'field' => 'slug',
'terms' => 'release',
'operator' => 'NOT IN',
]);
$query->set( 'tax_query', $tax_query );
}
}