获取基于自定义字段值的帖子数组

时间:2012-02-20 作者:AlxVallejo

我希望根据自定义字段值调出一组帖子:

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值分解为单独的查询。

1 个回复
最合适的回答,由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\' )
          )
      );

结束

相关推荐

JQuery AJAX调用引发HTTP302

我试图实现一个jQuery自动完成,其中自动完成从ajax源获取数据。然而,由于某种原因,当我打电话时,结果是302,而这反过来又会导致404。这就是我所拥有的:In functions.php:function my_ajax_foo() { die(\"OK\"); } add_action(\'wp_ajax_my_ajax_foo\', \'my_ajax_foo\' ); add_action(\'wp_ajax_nopriv_my_ajax_foo