首先,你的meta_query
是错误的。它应该是一个数组中的一个数组,而不仅仅是一个数组
因此,以下内容
\'meta_query\' => array (
\'key\' => \'qd_resource_author_selector\',
\'value\' => $myAuthor,
),
成为
\'meta_query\' => array (
array(
\'key\' => \'qd_resource_author_selector\',
\'value\' => $myAuthor,
),
),
其次,可以优化查询。您正在对每个值运行查询。如果您有100个值,那么将运行100个查询,这很昂贵
您可以通过在数组中添加值并将数组直接传递给meta_query
只是一些其他问题tax_query
. 您正在使用的语法已贬值
您的第一个实例get_the_title()
在环路外看起来不合适。不知道你在那里做什么
不要混淆语法,这很容易混淆,而且很难在出现故障时进行调试。为您的if
声明您正在使用卷曲(我更喜欢卷曲,因为基本上所有编辑器都支持它们,很容易调试),并且while
您使用的声明:
和endwhile
. 我建议你用卷发,以后继续用
综上所述,您可以不用foreach
环
$myAuthor = array(\'value1\', \'value2\', \'value3\');
$args = array(
\'posts_per_page\' => -1,
\'post_type\' => \'resource\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'resource_types\',
\'field\' => \'slug\',
\'terms\' => \'ml-special-reports\',
),
),
\'meta_query\' => array (
array(
\'key\' => \'qd_resource_author_selector\',
\'value\' => $myAuthor,
\'compare\' => \'IN\',
),
),
\'orderby\' => \'title\',
\'order\' => \'ASC\'
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
echo \'<h3>\'.get_the_title().\'</h3>\';
}
wp_reset_postdata();
}