您的尝试并不遥远(+1表示尝试,关键是发布您尝试过的内容),您所要做的只是添加一个EXISTS
到您的元查询。
这个meta_query
参数可能有点像野兽一样让人头痛,为了以防万一,我建议您阅读Class Reference for WP_Query, 专门针对Custom Field Parameters.
$args = array(
\'posts_per_page\' => 1,
\'paged\' => (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1,
\'order\' => \'DESC\',
\'orderby\' => \'post_date\',
\'meta_query\' => array(
\'relation\' => \'AND\',
array(
\'key\' => \'video\',
\'compare\' => \'EXISTS\'
),
array(
\'key\' => \'video\',
\'value\' => \'\',
\'compare\' => \'!=\'
)
)
);
$loop = new WP_Query($args);
if($loop->have_posts()) : while($loop->have_posts()) : $loop->the_post();
$specials = get_post_meta($post->ID, \'video\');
foreach($specials as $special): setup_postdata($special);
echo \'<iframe width="699" height="269" src="http://www.youtube.com/embed/\'.$special.\'?controls=1&showinfo=0&rel=0" allowfullscreen></iframe>\';
endforeach;
endwhile;
wp_reset_postdata();
endif;
<小时>
Additional
作为额外的冗余,我还添加了一个检查,以确保
video
自定义字段实际上包含一个值。虽然我相信WP post edit屏幕实际上不允许您保存空的自定义值,但我不能确定您是否正在以这种方式更新它,因此我认为最好将其包括在内。
但是,如果不想包含该支票,可以更改meta_query
此的参数-
\'meta_query\' => array(
array(
\'key\' => \'video\',
\'compare\' => \'EXISTS\'
)
)