获取通过元值检索的帖子的帖子元时的性能

时间:2016-07-25 作者:ptf

我有一个元键,我想用它一次性获得一篇文章的所有文章元数据,其中一个元键匹配一个特定值。

示例:Post 1 有一个meta_key 调用unique_number. 我想查询所有发生在unique_number 是一个特定的值,然后获取帖子的所有元数据unique numner 是该值。

我现在找到的方法是:

$args = array(
    \'meta_key\' => \'unique_number\',
    \'meta_value\' => \'12345\'
);

$posts = get_posts( $args );

...then I have to loop through the result and use get_post_meta to fetch the meta data.
除了许多查询外,是否可以使用内置的Wordpress函数在一个查询中实现这一点,还是必须编写自己的自定义mysql查询?

2 个回复
最合适的回答,由SO网友:Andy Macaulay-Brook 整理而成

当您调用get\\u posts时,WP还将检索和缓存所有的post meta,因此您稍后调用以获取元数据时,不应导致任何更多的数据库查询。

SO网友:Edward

您不应该查询post元数据。post meta value字段是文本类型,没有索引,因此一旦post meta表变大,查询速度就会非常慢。仅对外观数据使用post meta。如果有要查询的自定义值,请始终使用可以轻松集成到WP\\u query args中的自定义表,或编写自己的sql查询以直接访问这些值。有关该主题的更多详细信息可以在本文中找到,本文比较了post metas和自定义表的性能,并给出了一些代码示例。