Query about wp_query

时间:2020-03-13 作者:Foysal

我是WordPress的新手。我想了解更多关于wp\\U查询的信息。我在WordPress网站上有以下代码。

$metaquery = array(
                    \'relation\' => \'AND\',
                    array(
                        \'relation\' => \'AND\',
                        array(
                            \'key\'       => \'idonate_donor_bloodgroup\',
                            \'value\'     =>  sanitize_text_field( isset( $_GET[\'bloodgroup\'] ) ? $_GET[\'bloodgroup\'] : \'\' ),
                            \'compare\'   => \'=\'
                        ),
                        array(
                            \'key\'       => \'idonate_donor_availability\',
                            \'value\'     => sanitize_text_field( isset( $_GET[\'availability\'] ) ? $_GET[\'availability\'] : \'\' ),
                            \'compare\'   => \'=\'
                        ),
                    ),
                    array(
                        \'relation\' => \'OR\',
                        array(
                            \'key\'     => \'idonate_donor_country\',
                            \'value\'   => sanitize_text_field( isset( $_GET[\'country\'] ) ? $_GET[\'country\'] : \'\' ),
                            \'compare\' => \'=\'
                        ),
                        array(
                            \'key\'     => \'idonate_donor_state\',
                            \'value\'   => esc_attr( isset( $_GET[\'state\'] )  ? $_GET[\'state\'] : \'\' ),
                            \'compare\' => \'=\'
                        ),
                        array(
                            \'key\'     => \'idonate_donor_city\',
                            \'value\'   => esc_attr( isset( $_GET[\'city\'] )  ? $_GET[\'city\'] : \'\' ),
                            \'compare\' => \'=\'
                        ),
                    )
                );
我想知道key 在这里我为什么要使用它?如何生成此key? 如何使用此key ? 我可以用任何东西作为key ?

2 个回复
最合适的回答,由SO网友:HK89 整理而成

基本上,WP\\u query的meta\\u query参数允许您按元数据搜索WordPress帖子/页面/自定义帖子类型,并对结果进行排序。

在本文中,我假设您已经掌握了如何在WordPress中使用WP\\U查询类的基本知识。在开始之前,我想向您展示一些非常简单的示例。类似的例子可以在WordPress Codex中找到。

正如您所知,所有帖子都有元数据,您可以在“自定义字段”元框中填充元数据(顺便提一下,元框可以隐藏)。因此,例如,如果您想获得一篇带有meta key show\\u on\\u homepage和meta value on的帖子,可以通过以下方式完成:

$rd_args = array(
    \'meta_key\' => \'show_on_homepage\',
    \'meta_value\' => \'on\'
);

$rd_query = new WP_Query( $rd_args );
下面的简单示例允许您使用特定的自定义字段值获取所有帖子。让我们用自定义字段名“color”和自定义字段值白色获取所有帖子。

// the meta_key \'color\' with the meta_value \'white\'
$rd_args = array(
    \'meta_query\' => array(
        array(
            \'key\' => \'color\',
            \'value\' => \'white\'
        )
    )
);

$rd_query = new WP_Query( $rd_args );
如果查看与查询匹配的任何帖子中的帖子编辑页面(在管理区域),您将在“自定义字段”部分看到以下内容:

enter image description here

Refer this link 更多知识

SO网友:Sally CJ

Note (to other readers): 如果您正在寻找WordPress(post)元查询的入门指南,请查看其他答案或链接文章(作者Misha) — 你可能还想阅读this article 这是对自定义字段或元数据的初学者友好的介绍meta_query (WordPress元查询)真的是为了

最初的答案是对What is the purpose of the key here ? Why should I use it ?“:

那个key 参数是meta key (或自定义字段的名称,请将其视为post Slug)。没有它,WordPress/MySQL就不知道应该查询什么元数据,因为WP_Query 默认情况下不查询所有(post)元。

您可以找到所有WP_Query 参数herehere 对于meta_query (元查询子句)。

附加说明

除了其他答案外,这些是附加的细节,可能对您有用。

meta_query 参数或WordPress元查询不仅用于WP_Query 或用于搜索/筛选帖子,也可用于搜索/筛选默认/内置类别等术语(category) 多站点网络中的分类法、注释、用户和站点。

但是,默认的自定义字段编辑器/元框仅适用于帖子。对于术语、用户等,您可以编写自己的metabox,或使用类似于高级自定义字段的插件。

回复“Can I use anything as key ?“:

是的,基本上

但从技术上讲,一个元密钥最多只能包含255个字符,插件/主题(和您)可以使用filter hooks 要允许/不允许某些字符,请限制密钥长度等。

尽管我在最初的回答中说了什么(“把它想象成一个弹头”,meta key实际上可以像一个包含空格的帖子标题Continue ReadingFavorite Music in the 90\'s.

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post