作为wordpress的重度用户,对于wordpress网站的每一个细节我都很在意。
相信很多站长和我一样!
网站搭建起来,我发现url中一直有一个“category”,我表示很不爽,想尽办法要把这个万恶的单词给去掉。结合网友们分享的教程和个人总结,去掉“category”的方法无非就是使用插件、代码实现、修改函数、修改固定链接方式四种有效方法。
一、使用插件
如果你是傻瓜式建站,没有一定的代码基础,又很介意url中的“category”的话,建议使用插件,直接在wp后台搜索插件安装就可以!然后刷新网站就会发现url中的“category”已经被顺利去除。
推荐两款插件:
No category parents:作者milardovich,上面插件的升级版,不仅能去掉分类链接的前缀category,还能去掉父分类 parent-category。例如能把“/category/parent-category/my-category/”换成“/my-category/”形式。
下载地址:WordPress官方下载;作者milardovich博客下载
优点:安装简单,老少皆宜。无论是初建成的博客,还是正打算使用固定链接 /永久链接的博客,还是被搜索引擎收录良好的博客。用不着修改代码,升级之时没有顾虑。使用 301跳转,把原链接进行跳转。最大程度防止搜索引擎降权,防止原链接打不开。
不足:插件或许会造成空间负担。这里不说是缺点,就是因为,造成的“空间负担”微乎其微,不应该是缺点。比较在意的就不用,无所谓推荐使用。
WP No Category Base:作者iDope,是为去除固定链接中分类链接里的category而开发出来的一款wordpress插件,被下载近5万次。安装启用此插件后,对原来的分类地址做了301跳转,对SEO优化有好处,把降权风险降到最低。
下载地址:WordPress官方下载;作者iDope博客下载
但是不得不说的是,wp使用插件过多,会导致网站加载缓慢。这是使用插件的方式解决问题的弊病。
二、使用代码去除“cotegory”
直接贴如下代码,将下面代码加到主题functions.php中?>前保存,回到后台固定链接设置点击“保存更改”两次。如果前台分类目录页面不能访问,就再固定链接设置更新下;回到目录页面就能看到链接中的category被去除了,访问原来带category链接也会跳转到新链接上。
/* *WordPress去除category*/add_action( 'load-themes.php', 'no_category_base_refresh_rules');add_action('created_category', 'no_category_base_refresh_rules');add_action('edited_category', 'no_category_base_refresh_rules');add_action('delete_category', 'no_category_base_refresh_rules'); function no_category_base_refresh_rules() { global $wp_rewrite; $wp_rewrite -> flush_rules();} // register_deactivation_hook(__FILE__, 'no_category_base_deactivate'); // function no_category_base_deactivate() { // remove_filter('category_rewrite_rules', 'no_category_base_rewrite_rules'); // // We don't want to insert our custom rules again // no_category_base_refresh_rules(); // } // Remove category base add_action('init', 'no_category_base_permastruct'); function no_category_base_permastruct() { global $wp_rewrite, $wp_version; if (version_compare($wp_version, '3.4', '<')) { // For pre-3.4 support $wp_rewrite -> extra_permastructs['category'][0] = '