不是这样的meta_query
作品the documentation at WordPress.org states that meta_query
does not take parameters, but rather arrays of parameters
meta\\u查询还包含一个或多个具有以下键的数组:
然后再往下:
Important Note: meta_query
获取一个元查询参数数组(它获取一个数组)-您可以在下面的示例中看到这一点。
此构造允许您通过使用第一个(外部)数组中的关系参数来描述元查询之间的布尔关系来查询多个元数据。接受的参数为“AND”、“OR”。默认值为“AND”。
以及:
(请注意,即使只有一个查询,meta\\u查询也需要嵌套数组。)
因此:
\'meta_query\' => [
\'key\' => \'webinar\',
\'compare\' => \'EXIST\',
],
应该是这样的:
\'meta_query\' => [
[
\'key\' => \'webinar\',
\'compare\' => \'EXIST\',
]
],
然而,整个方法都是错误的,查询速度会非常慢/非常昂贵,不必这样。自定义字段不是为查找帖子而设计的,按帖子的元数据搜索、过滤、查询帖子是非常昂贵/沉重/缓慢/不必要的。
有两种方法可以更快、更容易地实现数千倍的速度,它们允许您完全避免构建自定义查询(并且它们提供免费分页、REST API、URL、管理屏幕等)
1. Custom Post Types, 您可以创建一个网络研讨会帖子类型。然后你就可以在/webinar
可以通过rewrite
参数archive-webinar.php
在您的主题中,所有自动创建的魔术都是免费的!甚至会有一个单独的WP管理界面用于网络研讨会。为什么要努力用自定义字段重新创建它,省去了麻烦。您可以访问以下站点https://generatewp.com/post-type/ 或者他们的竞争对手之一,并填写一些问题,它将生成代码供您复制粘贴
2: Custom Taxonomy, 如果您需要过滤/搜索/查询/限制等,那么使用自定义分类法,这就是它们的设计目的。标签和类别没有存储为自定义字段是有原因的。这些也给了你很多免费的东西。喜欢免费模板taxonomy-webinar.php
在你的主题中,免费存档URL、用户界面、javascript的REST API等。你甚至可以使用与自定义帖子类型和复制粘贴相同的网站免费生成代码
进一步说明:
不要把所有的输出都集中在一个无意义的变量中,这只意味着你的浏览器正在等待输出,这让转义变得非常困难。如果需要它作为短代码的字符串,只需在查询和调用后使用输出缓冲区进行清理wp_reset_postdata
在while循环结束后,或者当前帖子将设置为循环的最后一篇帖子,而不是当前页面\'showposts\' => -1,
和posts_per_page
设置为-1
, 将其设置为一个超高的数字,你知道它永远不会达到,但永远不会-1
, 否则,如果发生事故,如果业务发生变化,如果网站多年来增加网络研讨会,您可能会出现内存耗尽或超时错误。不要说它永远不会发生,而是设置一个高数字并保证它不会发生