朋友的 wordpress 使用了 simple urls 插件来做外链转内链的工作,确实很方便,但是有一个弊端,就是在博客中搜索关键词的时候,搜索结果中就会出现 simple urls 插件生成的短连接,这样的搜索结果不是用户想要的,所以用户体验很差。为了避免这个问题魏艾斯博客找到了@欲思博客提供的一段代码,可以去除 wordpress 搜索结果中 Simple Urls 插件产生的短链接。
只要把下面的代码添加到 functions.php 中就可以实现上面提到的功能了,另外 ID 和分类可以根据个人需要再更改。
排除特定 ID 的文章或页面,代码如下:
//搜索结果排除特定 ID 的文章或页面 function Bing_search_filter_id($query) { if ( !$query->is_admin && $query->is_search) { $query->set(‘post__not_in’, array(40,819));//文章或者页面的 ID } return $query; } add_filter(‘pre_get_posts’,’Bing_search_filter_id’);
提示:按需修改文章或页面 ID
接下来是排除某些分类的文章,代码如下:
//搜索结果排除某些分类的文章 function Bing_search_filter_category( $query) { if ( !$query->is_admin && $query->is_search) { $query->set(‘cat’,’-15,-57′); //分类的 ID,前面加负号表示排除;如果直接写 ID,则表示只在该 ID 中搜索 } return $query; } add_filter(‘pre_get_posts’,’Bing_search_filter_category’);
注意修改 ID,看注释。
如果想要去除 Simple Urls 插件产生的全部短链接,可以使用下面代码:
//搜索结果排除所有页面 function search_filter_page($query) { if ($query->is_search) { $query->set(‘post_type’, ‘post’); } return $query; } add_filter(‘pre_get_posts’,’search_filter_page’);
用第三段代码设置完毕,魏艾斯博客实测可以完全去除掉全部短连接,用户看到的就是真正的文章内容了。
通过以上的方法终于去除了 wordpress 搜索结果中 Simple Urls 插件产生的短链接,之前朋友被搜索结果中的短连接搞的很苦恼,已经在考虑手动添加代码来实现外链转内链功能了,用了这段代码以后,终于解决了这个问题。