你引用的那行实际上并没有查询任何帖子。这只是一个非常普遍的检查,如果有任何职位在任何时候。
像这样的WP核心部分的问题是WordPress被设计成查询帖子集。每当所说的布景可能变得非常大的时候,它大多不得不放弃WP_Query
使用它的所有功能,并使用原始SQL。
为这一场景的帖子集生成条件并不难(未测试,如果您的值是布尔值,可能还需要类型):
$condition = array(
array(
\'key\' => \'ua_allow_future_check\',
\'value\' => true,
),
);
$meta_query = new WP_Meta_Query( $condition );
$sql = $meta_query->get_sql( \'post\', $wpdb->posts, \'ID\' );
var_dump( $sql );
为我们提供:
Array
(
[join] => INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id)
[where] => AND ( (wp_postmeta.meta_key = \'ua_allow_future_check\' AND CAST(wp_postmeta.meta_value AS CHAR) = \'1\') )
)
但把这个栓在
get_calendar()
是一个独立而混乱的故事。