Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.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 如何获取除属于特定帖子类型Wordpress的帖子之外的所有帖子?_Php_Wordpress - Fatal编程技术网

Php 如何获取除属于特定帖子类型Wordpress的帖子之外的所有帖子?

Php 如何获取除属于特定帖子类型Wordpress的帖子之外的所有帖子?,php,wordpress,Php,Wordpress,例如,我通过register\u post\u type()函数在我的主题中注册了3个帖子类型(或更多): 议程 下载 产品 现在我想得到所有不属于Productpost类型的帖子(所有帖子、页面、议程、下载) 我不想使用'post_type'=>数组('post'、'page'、'agenda'、'download'),因为将来可能会注册更多的帖子类型 对于帖子类型,是否没有与“category\u not\u in”等效的参数?也许您需要以下参数: 这里有一个排除类别的例子,也许这可以用

例如,我通过
register\u post\u type()
函数在我的主题中注册了3个帖子类型(或更多):

  • 议程
  • 下载
  • 产品
现在我想得到所有不属于
Product
post类型的帖子(所有帖子、页面、议程、下载)

我不想使用
'post_type'=>数组('post'、'page'、'agenda'、'download')
,因为将来可能会注册更多的帖子类型


对于帖子类型,是否没有与
“category\u not\u in”
等效的参数?

也许您需要以下参数:

这里有一个排除类别的例子,也许这可以用于帖子类型

如果无法使用上面的钩子,您可以在构建查询之前尝试以下操作:

  • 收集网站中的所有帖子类型:
  • 将它们放在一个数组中,以便在查询“post_type”选项时使用该数组
  • 删除要从数组中排除的post类型

  • 这样,每个新注册的帖子类型都将包含在查询中。请注意,默认的WP post类型“posts”也将在
    get\u post\u types
    函数中返回。

    也许您需要:

    这里有一个排除类别的例子,也许这可以用于帖子类型

    如果无法使用上面的钩子,您可以在构建查询之前尝试以下操作:

  • 收集网站中的所有帖子类型:
  • 将它们放在一个数组中,以便在查询“post_type”选项时使用该数组
  • 删除要从数组中排除的post类型

  • 这样,每个新注册的帖子类型都将包含在查询中。请注意,默认的WP post类型“posts”也将在
    get\u post\u types
    函数中返回。

    我不确定尝试什么是一个好主意,但您可以这样做:

    首先,您将发布以下类型:

    $post_types = get_post_types(['public' => true]);
    
    然后,从该数组中删除不想查询的帖子类型:

    $excluded_posttypes = ['product'];
    $post_types         = array_diff($post_types, $excluded_posttypes);
    
    然后将其用作WP_查询调用的参数:

    'post_type' => $post_types,
    

    我不确定你尝试的是什么好主意,但你可以这样做:

    首先,您将发布以下类型:

    $post_types = get_post_types(['public' => true]);
    
    然后,从该数组中删除不想查询的帖子类型:

    $excluded_posttypes = ['product'];
    $post_types         = array_diff($post_types, $excluded_posttypes);
    
    然后将其用作WP_查询调用的参数:

    'post_type' => $post_types,
    

    显示你的代码?到目前为止你尝试了什么?你在使用WP_查询吗?@yivi现在我正在为自动生成数据测试编写插件。我在我的主题中使用了ACF。在这种情况下,我必须检测ACF显示的post类型。我会在下面尝试你的评论。谢谢。显示你的代码?到目前为止你尝试了什么?你在使用WP_查询吗?@yivi现在我正在为自动生成数据测试编写插件。我在我的主题中使用了ACF。在这种情况下,我必须检测ACF显示的post类型。我会在下面尝试你的评论。谢谢,谢谢。我会用这种方法试试。@Mít有用吗?如果答案能解决你的问题,记得接受它。:)谢谢我会用这种方法试试。@Mít有用吗?如果答案能解决你的问题,记得接受它。:)谢谢你的回复。您对第一条评论有相同的想法,因此我将尝试两种方法^^^谢谢您的回复。你对第一条评论有相同的想法,所以我将尝试两种方法^^