我需要循环浏览最后3篇帖子movie
, 但只有那些内容不是空的。
当我使用ACF编辑器而不是本机编辑器时,我通常会这样做。
movie-content
指所见即所得字段的段塞。
$args = array(
\'posts_per_page\' => 3,
\'post_type\' => \'movie\',
\'meta_query\' => array(
array(
\'key\' => \'movie-content\', // ACF editor field name
\'value\' => \'\',
\'compare\' => \'!=\'
)
)
);
有没有办法用本机编辑器做到这一点?我想在请求中而不是在循环中进行条件测试。
SO网友:Howard E
如果我完全理解你的问题,我相信这就是你想要的。
据我所知。。。没有可用于完成此操作的WP\\U查询。但是,您可以使用$wpdb并进行自定义查询。
global $wpdb;
$q = " SELECT * from {$wpdb->posts} p
RIGHT JOIN {$wpdb->postmeta} pm ON p.ID = pm.post_id AND pm.meta_key = \'your_meta_key\'
WHERE p.post_type = \'your_post_type\' AND p.post_status = \'publish\' and p.post_content <> \' \'
LIMIT 3";
$results = $wpdb->get_results($q);
foreach ($results as $post){
// Your Loop goes here
echo $post->post_content;
}
只需将“your\\u post\\u type”等替换为自定义字段即可。
除了p.post\\u内容,您还可以使用pm。meta\\u值<;>“”-这将只检索您选择的元字段值不为空的帖子。
在这种情况下,查询将是:
$q = " SELECT * from {$wpdb->posts } p
RIGHT JOIN {$wpdb->postmeta} pm ON p.ID = pm.post_id AND pm.meta_key = \'your_meta_key\'
WHERE p.post_type = \'your_post_type\' AND p.post_status = \'publish\' and pm.meta_value <> \' \'
LIMIT 3";