如果你看看$wpdb->posts
在数据库中的表中,您会注意到,文件名(减去文件类型结尾)用于post_title
用于附件。这意味着,如果可以使用搜索功能搜索附件,则可以有效地搜索文件名,默认搜索(几乎)已经做到了这一点。
在您的代码中,这两行代码对您不利。。。
$search_query[\'post_type\'] = array(\'post\', \'page\');
$search_query[\'post_status\'] = \'publish\';
。。。因为附件是
\'post_type\' == \'attachments\'
和
\'post_status\' == \'inherit\'
. 如果你把第二个改成。。。
$search_query[\'post_status\'] = array(\'publish\',\'inherit);
。。。先别说了,你应该让它工作。那就是。。。
$search_query[\'s\'] = \'annual report\';
$search_query[\'post_status\'] = array(\'publish\',\'inherit\');
$search = new WP_Query($search_query);
var_dump($search);
您还可以使用…更改全局搜索。。。
function search_attach_names_wpse_99832($qry) {
if($qry->is_search()) {
$qry->set(\'post_status\',array(\'publish\',\'inherit\'));
}
}
add_action(\'pre_get_posts\',\'search_attach_names_wpse_99832\');