恐怕这在默认情况下是不可能的。使用WP\\u Query,您只能检查帖子是否有特色图像集。
您可以做什么:
创建一个在后期保存期间激发的挂钩(例如“post\\u updated”),检查此帖子是否有任何附件-将此信息保存在post\\u meta中。使用meta\\u query和WP\\u query来获取帖子。
要检查帖子是否有附件,您必须扫描post\\u内容并检测古腾堡区块留下的任何标签或评论?(例如,“lt;!--/wp:多媒体资料--”或“lt;!--/wp:媒体文本--”等)
请记住,这不是一个防弹的解决方案。
保存附件元数据
add_action( \'post_updated\', \'has_post_attachments\', 12, 3 );
function has_post_attachments( $post_ID, $post_after, $post_before ) {
// This is not ultimate list of all possible test strings, adjust it for your env
$test_strings = array(
\'<!-- /wp:image -->\',
\'<!-- /wp:gallery -->\',
\'<!-- /wp:media-text -->\',
);
update_post_meta( $post_ID, \'_my_custom_key\', 0 );
foreach ( $test_strings as $str ) {
if ( false !== strpos( $post_after->post_content, $str ) ) {
update_post_meta( $post_ID, \'_my_custom_key\', 1 );
return;
}
}
return;
}
查询带有附件的帖子
$args = array(
\'post_type\' => \'post\',
\'post_status\' => \'publish\',
\'posts_per_page\' => 10,
\'paged\' => 1,
\'meta_query\' => array(
array(
\'key\' => \'_my_custom_key\',
\'value\' => \'1\',
\'compare\' => \'=\'
)
)
);
$posts = new WP_Query($args);