我希望根据自定义字段值调出一组帖子:
function GetPrimaryLinks($product){
echo \'<ul>\';
$args = array(
\'product\' => $product,
\'meta_key\' => \'primary_link\',
\'meta_value\' => array(
\'home\',
\'obj_handling\',
\'standalone_doc\',
\'advantages\',
\'weaknesses\',
\'top_comments\') );
$primarylinks = get_posts( $args );
foreach ($primarylinks as $post) : setup_postdata($post);
echo \'<li><a href="\'.the_permalink().\'">\'.the_title().\'</a></li>\';
endforeach;
echo \'</ul>\';
}
因此,我可以在各种产品上重用该功能,以调出“主页”、“对象处理”等页面,并且每次只使用一个SQL查询。
这个脚本显然不起作用,因为它正在查找带有meta\\u值数组的帖子,但我想知道是否有办法在一个SQL查询中编写函数,而不是将meta\\u值分解为单独的查询。
最合适的回答,由SO网友:goldenapples 整理而成
看看meta_query 参数,以及"IN"
的选项"Compare"
操作人员
您的查询如下所示:
$args = array(
\'product\' => $product,
\'meta_query\' => array(
array(
\'key\' => \'primary_link\',
\'value\' => array(
\'home\',
\'obj_handling\',
\'standalone_doc\',
\'advantages\',
\'weaknesses\',
\'top_comments\'
),
\'compare\' => \'IN\' )
)
);