cp_annonceur
且值为professionnel
的帖子。#1 楼
您需要的是meta_query
$args = array(
'meta_query' => array(
array(
'key' => 'cp_annonceur',
'value' => 'professionnel',
'compare' => '=',
)
)
);
$query = new WP_Query($args);
您需要的所有信息都在法典中。
评论
@Beginner:如果此方法解决了问题,请将其标记为“已接受”。在左侧的投票箭头附近寻找对勾标记。
– s_ha_dum
2014年5月11日20:35
由于某些原因,使用新的WP_Query($ args)然后调用get_posts对我不起作用。但是直接将$ args数组作为参数传递给get_posts函数。
–库纳尔
20-5-5在21:24
#2 楼
有两种方法可以执行此操作:拦截对
pre_get_posts
的主要查询: />添加其他查询add_action( 'pre_get_posts', function( $query )
{
// only handle the main query
if ( ! $query->is_main_query() )
return;
$query->set( 'meta_key', 'cp_annonceur' );
$query->set( 'meta_value', 'professionnel' );
} );
可以在此答案中找到更多示例。
评论
很高兴知道get_posts()的简短方法
–安德鲁·韦尔奇(Andrew Welch)
17年1月26日在16:06
如何使用多个meta键/值来做到这一点?
–G Hbr /> 20年4月9日在22:57
@ G-J您可能想看一下这个例子。
– kaiser
20年4月15日在15:18
#3 楼
我使用了自定义选择(可能会更好地实现性能)$posts = $wpdb->get_results("SELECT * FROM $wpdb->postmeta
WHERE meta_key = 'cp_annonceur' AND meta_value = 'professionnel' LIMIT 1", ARRAY_A);
br />评论
它可能具有更好的性能,但是却放弃了使用Wordpress函数搜索(和缓存)数据的整个想法。而且,如果WP决定更改表结构,将会发生什么? :)
– Erenor Paz
17年3月3日在10:11
@ErenorPaz我明白您在说什么,但是如果您有多个元键/值作为条件,这种方式将使操作变得容易。是否有处理多个条件的官方方法?
– G-J
20年4月9日在22:59
您的意思是类似WHERE metatable1.meta_key ='cp_annonceur'AND metatable1.meta_value ='professionnel'AND metatable2.meta_key ='cp_other_meta'AND metatable2.meta_value ='other_value'吗? (请注意,我想我们使用两个名称metatable1和metatable2在同一posts_meta表上进行联接)。这可以通过将字段meta_query(作为数组)添加到查询中来实现。看一下:developer.wordpress.org/reference/classes/wp_query/…并转到“带有多个“ meta_key”的“ orderby”段落
– Erenor Paz
20-4-10的11:19
#4 楼
我们可以通过WordPress的元查询获得所需的结果: / get-posts-meta-values /评论
我可以知道为什么此post_per_page值为-1吗?
–阿拜
18年4月27日在5:07
@AbhayGawade您可以使用该参数来限制最大结果数,-1表示没有限制。
–库什
18年6月20日在17:49
评论
请注意,在发布问题之前,您应该已经研究了该问题并尝试解决该问题。如果您不是这里的新手,我可能会否决这个问题,然后继续前进,而不是回答它。本着“ Welcome to the Stack”的精神,这是您的自由蜂。请看一下如何问以后的问题。由于以下未接受的回答,这使我浪费了一些时间。所以我要把我的两分钱留在这里。他从未回答,也没有接受下面的答案。为什么这里周围有许多类似的问题,您为什么不删除这些问题呢?