你想要实现的是LIKE
查询但你用的是compare
仅针对存在的参数meta_query
参数。您需要使用如下过滤器:
add_filter( \'posts_where\', \'wpse120358TitleLike\', 10, 2 );
function wpse120358TitleLike( $where, &$wp_query )
{
global $wpdb;
if (
\'post\' === $wp_query->get( \'post_type\' )
AND $wp_query->get( \'name\' )
// add further restriction arguments here:
// AND ...
)
{
$where .= $wpdb->prepare(
\' AND %s LIKE %s\',
"{$wpdb->posts}.post_title",
\'%\'.like_escape( $wp_query->get( \'name\' ) ).\'%\'
);
}
return $where;
}
请注意,这不是经过测试的脚本。这是一个可以建立的指导方针。