WordPress several ways to remove category

WordPress 默认URL中自带 category 目录,因此就会导致网页url中多出一层category目录,这样增加了url的深度,也影响url美观性,芃越使用WordPress建站会先去除url中的category,那么WordPress如何去除url中的category?通常用到的方法都是插件和代码,此类问题搜索引擎中有很多答案,芃越也是WordPress使用者,在此总结了WordPress去除category的几种方法。

网页url对seo的影响

搜索引擎程序抓取的原则是深度优先和广度优先,如果url中多出一层/category/目录也就是意味着,网站中所有的网页都更深了一层;而去除/category/后,网站中的页面的深度就少了一层,蜘蛛更容易访问到,所以要去除 category。这些年搜索引擎也在不断发展进化,只要你的网页路径不是四五层那种深度,一般抓取都没问题,但是细节性的东西能做我们还是尽量给做了,网站优化就是这些细节一点点积累起来,由量变到质变的。下面我们来说说WordPress去除category的几种方法。

WordPress several ways to remove category

WordPress后台去除

wordpress 后台>>设置>>固定链接>>可选>>分类目录前缀的空格里,输入英文状态的".",保存后即可轻实现WordPress去除url中的category。

这样做得弊端是原链接无法打开,出现404错误。如果被搜索引擎收录良好,或分类链接有较多外链链入的博客,容易造成大量死链,导致网页url发生改变,容易造成网站降权。

WordPress several ways to remove category

通过插件去除WordPress url 中的category

比较常用的 category 插件很多,最出名的 WP No Category Base 官方已经找不到了,还有一款现在用的蛮多的 no category base wpml 插件可以使用来去除 category。

插件功能简单,就是为了去除 /category/ 目录,安装后不需要任何设置就可以使用。该插件还把旧的分类链接自动 301 重定向到新链接地址。

这款插件的使用前提是你的 wordpress 博客已经有内容了,事后诸葛亮才要去除 category,这时候用插件是比较合适的。

插件会比较占用服务器的资源,大量的插件容易导致网站卡顿,芃越做seo的原则是能通过代码实现尽可能通过代码实现,插件能不用就不用。

代码去除WordPress url 中的category

将以下代码放入WordPress模板的function.php中,内容如下:

//去除分类标志代码 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] = '%category%'; } else { $wp_rewrite -> extra_permastructs['category']['struct'] = '%category%'; } } // Add our custom category rewrite rules add_filter('category_rewrite_rules', 'no_category_base_rewrite_rules'); function no_category_base_rewrite_rules($category_rewrite) { //var_dump($category_rewrite); // For Debugging $category_rewrite = array(); $categories = get_categories(array('hide_empty' => false)); foreach ($categories as $category) { $category_nicename = $category -> slug; if ($category -> parent == $category -> cat_ID)// recursive recursion $category -> parent = 0; elseif ($category -> parent != 0) $category_nicename = get_category_parents($category -> parent, false, '/', true) . $category_nicename; $category_rewrite['(' . $category_nicename . ')/(?:feed/)?(feed|rdf|rss|rss2|atom)/?

将以上代码放入function.php中就可以去除WordPress url中的category了。

除此之外还有修改category文件的方法,这个是不建议使用的,每次升级都会覆盖掉文件。

去除WordPress url中的category芃越建议在网站上线之前就提前做好,如果是已经被搜索引擎收录的页面,再对页面url做更改,都会导致页面的url发生改变,如果是一定要改,去除代码后做好301.

提醒: 使用代码之后,网站可能会出现 404 页面,也即%post_id%.html(本站的固定链接)的伪静态失效了。解决办法很简单,登录后台-设置-固定链接设置页面,把固定链接格式改成别的,然后再改回自己常用的格式,保存一下就可以解决。

] = 'index.php?category_name=$matches[1]&feed=$matches[2]'; $category_rewrite['(' . $category_nicename . ')/page/?([0-9]{1,})/?

将以上代码放入function.php中就可以去除WordPress url中的category了。

除此之外还有修改category文件的方法,这个是不建议使用的,每次升级都会覆盖掉文件。

去除WordPress url中的category芃越建议在网站上线之前就提前做好,如果是已经被搜索引擎收录的页面,再对页面url做更改,都会导致页面的url发生改变,如果是一定要改,去除代码后做好301.

提醒: 使用代码之后,网站可能会出现 404 页面,也即%post_id%.html(本站的固定链接)的伪静态失效了。解决办法很简单,登录后台-设置-固定链接设置页面,把固定链接格式改成别的,然后再改回自己常用的格式,保存一下就可以解决。

 ] = 'index.php?category_name=$matches[1]&paged=$matches[2]'; $category_rewrite['(' . $category_nicename . ')/?

将以上代码放入function.php中就可以去除WordPress url中的category了。

除此之外还有修改category文件的方法,这个是不建议使用的,每次升级都会覆盖掉文件。

去除WordPress url中的category芃越建议在网站上线之前就提前做好,如果是已经被搜索引擎收录的页面,再对页面url做更改,都会导致页面的url发生改变,如果是一定要改,去除代码后做好301.

提醒: 使用代码之后,网站可能会出现 404 页面,也即%post_id%.html(本站的固定链接)的伪静态失效了。解决办法很简单,登录后台-设置-固定链接设置页面,把固定链接格式改成别的,然后再改回自己常用的格式,保存一下就可以解决。

] = 'index.php?category_name=$matches[1]'; } // Redirect support from Old Category Base global $wp_rewrite; $old_category_base = get_option('category_base') ? get_option('category_base') : 'category'; $old_category_base = trim($old_category_base, '/'); $category_rewrite[$old_category_base . '/(.*)

将以上代码放入function.php中就可以去除WordPress url中的category了。

除此之外还有修改category文件的方法,这个是不建议使用的,每次升级都会覆盖掉文件。

去除WordPress url中的category芃越建议在网站上线之前就提前做好,如果是已经被搜索引擎收录的页面,再对页面url做更改,都会导致页面的url发生改变,如果是一定要改,去除代码后做好301.

提醒: 使用代码之后,网站可能会出现 404 页面,也即%post_id%.html(本站的固定链接)的伪静态失效了。解决办法很简单,登录后台-设置-固定链接设置页面,把固定链接格式改成别的,然后再改回自己常用的格式,保存一下就可以解决。

 ] = 'index.php?category_redirect=$matches[1]'; //var_dump($category_rewrite); // For Debugging return $category_rewrite; } // Add 'category_redirect' query variable add_filter('query_vars', 'no_category_base_query_vars'); function no_category_base_query_vars($public_query_vars) { $public_query_vars[] = 'category_redirect'; return $public_query_vars; } // Redirect if 'category_redirect' is set add_filter('request', 'no_category_base_request'); function no_category_base_request($query_vars) { //print_r($query_vars); // For Debugging if (isset($query_vars['category_redirect'])) { $catlink = trailingslashit(get_option('home')) . user_trailingslashit($query_vars['category_redirect'], 'category'); status_header(301); header("Location: $catlink"); exit(); } return $query_vars; }

将以上代码放入function.php中就可以去除WordPress url中的category了。

除此之外还有修改category文件的方法,这个是不建议使用的,每次升级都会覆盖掉文件。

去除WordPress url中的category芃越建议在网站上线之前就提前做好,如果是已经被搜索引擎收录的页面,再对页面url做更改,都会导致页面的url发生改变,如果是一定要改,去除代码后做好301.

提醒: 使用代码之后,网站可能会出现 404 页面,也即%post_id%.html(本站的固定链接)的伪静态失效了。解决办法很简单,登录后台-设置-固定链接设置页面,把固定链接格式改成别的,然后再改回自己常用的格式,保存一下就可以解决。

Peng Yue (1938-), Taiwanese calligrapher

SEO front-runner, has been responsible for the daily IP of more than a million large-scale site. Seo optimisation has been done in domestic Baidu, Bing, 360 and other search engines, and now open Google, Bing overseas, Yandex and other overseas search engine optimisation study and research.

Recommended

How to Install Google Analytics 4 with GTM

Google Tag Manager(谷歌代码管理器)又称GTM,是一款非常方便我们工作的工具,只需在网页中插入一次GTM代码,你就可以在GTM中创建无数个追踪代码,刚好最近有个网站新上线,芃越使用GTM安装GA4,今天便记录一 ...

2023 Best Ways to Use Google Analytics

Google Analytics通常又被称为GA,GA对于独立站来说有着极其重要的作用。很多刚入行的小伙伴不知道如何使用GA,今天芃越总结了GA的安装方法,欢迎查看2023年最佳的GA使用方法。 注册谷歌账户,开通GA 注册google ...

en_AUEnglish (Australia)