Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从自定义帖子类型中排除某个术语的帖子_Php_Wordpress_Function - Fatal编程技术网

Php 从自定义帖子类型中排除某个术语的帖子

Php 从自定义帖子类型中排除某个术语的帖子,php,wordpress,function,Php,Wordpress,Function,帖子类型为Press。 分类是按类型(slug=presstype)。 术语是新闻稿(slug=release) 我只想在我的函数文件中添加一些PHP,将任何名为“release”的帖子从普通Wordpress的自定义帖子类型循环(例如mydomain.com/press)中排除,而不是从其他可能包含press的自定义循环中排除 搜索了这么多不同的方法,但却找不到有效的解决方案。有谁知道functions.php最简单的代码可以做到这一点吗?您是否尝试过用pre\u get\u posts简单地

帖子类型为Press。 分类是按类型(slug=presstype)。 术语是新闻稿(slug=release)

我只想在我的函数文件中添加一些PHP,将任何名为“release”的帖子从普通Wordpress的自定义帖子类型循环(例如mydomain.com/press)中排除,而不是从其他可能包含press的自定义循环中排除


搜索了这么多不同的方法,但却找不到有效的解决方案。有谁知道functions.php最简单的代码可以做到这一点吗?

您是否尝试过用
pre\u get\u posts
简单地删除术语
release
?为了语义清晰,您可以使用函数包装它。因此,仅在
/press
页面(press Archive)上,设置了一个参数以排除任何带有术语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 );
    }
}

请编辑您的问题,以更清楚地说明您的输入是什么,您期望的输出是什么,以及您到目前为止尝试获得它的内容。XHYNK,这非常有效。谢谢:)