优化WordPress分类链接及WP-No-Category-Base的卸载方法
本文主要介绍如何优化WordPress分类链接以及如何卸载WP-No-Category-Base。有需要的可以参考一下。
WordPress分类的永久链接默认是这样的,比如这个网站的技术文章分类。
exehack.net/Category/my-article/
如果能去掉中间的类别,是不是更美观,更有利于SEO优化:
exehack.net/my-my-article/
去掉类别的效果图:
1.启动这个站点是启用的WP无类别基础插件,用它可以有效去除Wordpress强制加入的分类链接格式。
插件功能:
1.将一级目录和二级目录的永久链接格式优化为
exehack.net/my-my-article/
exehack.net/software/black-soft.
以下是官网给出的这个插件的介绍:
1.它使用起来非常简单——几乎不会增加任何额外的负担。它运行流畅——不需要任何设置
3。它不需要修改wordpress文件
4。不需要任何其他插件也能工作
5。它与sitemap插件
6兼容。它也适用于多级分类。
PS:以上说法都是真的,但是为什么惨作者没有加一条“插件使用后不能停用或卸载”,否则商品不能作为网站文章访问。
相信大家都有同感。为什么分类中明确去除的类别和文章页面的url有什么关系?
这个插件真的很好,但是边肖讨厌流氓插件,但是又停不下来。
经过边肖的苦苦寻找,终于找到了停止WP-No-Category-Base插件后文章页面打不开的解决方案。
方法很简单:
1.将[固定连接]更改为[默认]状态,然后关闭[WP无类别库]插件
2。改回之前的URL形式就行了。
3。最后,您可以卸载插件。
由于需要卸载[WP无类别库]插件,边肖已经找到了一种新的方法来删除分类页面的类别。
否则所有文章都无法访问,所有404错误页面。大家辛辛苦苦经营的网站岂不是全毁了?
2.因此,这里有另一种方法来删除类别,通过添加以下代码在functions.php
代码如下:
PHPCode复制内容到剪贴板
//删除分类
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');
函数编号_类别_基本_刷新_规则(){
global$wp_rewrite
$WP_rewrite->;flush_rules();
}
//register_deactivation_hook(__FILE__,'no_category_base_deactivate');
//函数no_category_base_deactivate(){
//remove_filter('category_rewrite_rules','no_category_base_rewrite_rules');
////我们不想再次插入自定义规则
//no_category_base_refresh_rules();
//}
//删除类别库
add_action('init','no_category_base_permastruct');
函数no_category_base_permastruct(){
全局$wp_rewrite,$wp_version
if(version_compare($wp_version,'3.4','<')){
//对于3.4版之前的支持
$WP_rewrite->;extra_permastructs['category'][0]='%category%';
}否则{
$WP_rewrite->;extra_permastruct['category']['struct']='%category%';
}
}
//添加我们的自定义类别重写规则
add_filter('category_rewrite_rules','no_category_base_rewrite_rules');
函数no_category_base_rewrite_rules($category_rewrite){
//var_dump($category_rewrite);//用于调试
$category_rewrite=array();
$categories=get_categories(array('hide_empty'=>;false));
foreach($categoriesas$category){
$category_nicename=$category->;鼻涕虫;
if($category->;parent==$category->;cat_ID)//递归递归
$category->;parent=0;
elseif($category->;家长!=0)
$category_nicename=get_category_parents($category->;parent,false,'/',true)。$category_nicename
$category_rewrite['('。$category_nicename。')/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$']='index.php?category_name=$matches[1]&;feed=$matches[2]';
$category_rewrite['('。$category_nicename。)/page/?([0-9]{1,})/?$']='index.php?category_name=$matches[1]&;paged=$matches[2]';
$category_rewrite['('。$category_nicename。')/?$']='index.php?category_name=$matches[1]';
}
//从旧类别库重定向支持
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。'/(.*)$']='index.php?category_redirect=$matches[1]';
//var_dump($category_rewrite);//用于调试
return$category_rewrite
}
//添加“category_redirect”查询变量
add_filter('query_vars','no_category_base_query_vars');
函数no_category_base_query_vars($public_query_vars){
$public_query_vars[]='category_redirect';
返回$public_query_vars
}
//如果设置了“category_redirect”,则重定向
add_filter('request','no_category_base_request');
函数no_category_base_request($query_vars){
//print_r($query_vars);//用于调试
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();
}
返回$query_vars
}
评论列表(0条)