最后更新时间为 2022年2月28日
如果 WordPress 后台文章比较多,在进行 debug 的时候,对方告诉你 ID 的时候,在文章列表是无法快速定位到对应的文章的,可以通过下面的代码让 WordPress 在后台文章列表搜索支持 ID:
add_filter('posts_clauses', function ($clauses, $wp_query){
if($wp_query->is_main_query() && $wp_query->is_search()){
global $wpdb;
$search_term = $wp_query->query['s'];
if(is_numeric($search_term)){
$clauses['where'] = str_replace('('.$wpdb->posts.'.post_title LIKE', '('.$wpdb->posts.'.ID = '.$search_term.') OR ('.$wpdb->posts.'.post_title LIKE', $clauses['where']);
}elseif(preg_match("/^(d+)(,s*d+)*$/", $search_term)){
$clauses['where'] = str_replace('('.$wpdb->posts.'.post_title LIKE', '('.$wpdb->posts.'.ID in ('.$search_term.')) OR ('.$wpdb->posts.'.post_title LIKE', $clauses['where']);
}
}
return $clauses;
}, 2, 2);
上面代码支持直接搜索一个文章 ID,比如 123
,也支持多个文章 ID,不过需要通过「,
」区隔开,比如 123,345,567
。