这是不可能的WP_Query
就其本身而言。帖子标题不是meta,也没有内置的基于标题的查询功能。
您可以使用的方法是直接过滤SQL以添加逻辑。您甚至可以这样做,即可以将自定义参数添加到WP_Query
, 我会打电话给你的titles
\', 这将允许您传递一系列帖子标题。若要支持此参数,请将此筛选器添加到posts_where
:
function wpse_308130_posts_where( $where, $query ) {
global $wpdb;
// Check if our custom argument has been set on current query.
if ( $query->get( \'titles\' ) ) {
$titles = $query->get( \'titles\' );
// Escape passed titles and add quotes.
$titles = array_map( function( $title ) {
return "\'" . esc_sql( $title ) . "\'";
}, $titles );
// Implode into string to use in IN() clause.
$titles = implode( \',\', $titles );
// Add WHERE clause to SQL query.
$where .= " AND $wpdb->posts.post_title IN ($titles)";
}
return $where;
}
add_filter( \'posts_where\', \'wpse_308130_posts_where\', 10, 2 );
这将允许您传递一个要检索帖子的帖子标题列表,如下所示:
$posts = new WP_Query( array(
\'post_type\' => \'udbyder\',
\'posts_per_page\' => -1,
\'order\' => \'ASC\',
\'titles\' => [\'Title one\', \'Title two\'],
) );
这将返回标题为“Title one”或“Title two”的帖子。