WordPress 技巧:后台文章列表搜索支持 ID

如果 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

分享到:

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注