wordpress去除分类链接中的category

作者:刘天佑     发布于「WP教程」 - 刘天佑博客-记录生活和成长的一个自媒体博客

标签:
2018-09-26分类:WP教程阅读(424)评论(0)百度已收录
赞(0) 打赏

作者:刘天佑

放低自己,才能看到高处的风景;蹲下来,才能更好地仰望别人。低调不是愚蠢,而是智慧。

手机扫码查看

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

网上一共有三种方法来去掉wordpress分类url中的category:

WP分类链接删除category方法一

进入wordpress后台-设-固定链接,在分类目录前缀中添加“.”就可以把分类导航的url中的category去掉,但是不建议这样做,因为有可能会发生错误

wordpress去除分类链接中的category

 

WP分类链接删除category方法二

使用插件来删除category,推荐使用(WP No Category Base),这个插件直接安装就可以去掉,但是同样写不推荐使用,大家都知道,wordpress插件安装过多会影响网站的性能,能不用安装插件的就不安装。

 

WP分类链接删除category方法三

推荐使用这种方法来解决wordpress分类链接中的category问题,在functions.php中添加下面这段代码,不算很难,直接在后台主题编辑文件那里打开functions.php,添加一下就可以了。但是保存之后一定要在后台设置-固定链接中保存一下伪静态规则,否则不会生效哦。

// Refresh rules on activation/deactivation/category changes

register_activation_hook(__FILE__, '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)/?$'] = '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]';

}

// 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 . '/(.*)$'] = 'index.php?category_redirect=$matches[1]';




//var_dump($category_rewrite); // For Debugging

return $category_rewrite;

}




// For Debugging

//add_filter('rewrite_rules_array', 'no_category_base_rewrite_rules_array');

//function no_category_base_rewrite_rules_array($category_rewrite) {

// var_dump($category_rewrite); // For Debugging

//}




// 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;
分享到:
未经允许不得转载:

作者:刘天佑, 转载或复制请以 超链接形式 并注明出处 刘天佑博客-记录生活和成长的一个自媒体博客
原文地址:《wordpress去除分类链接中的category》 发布于2018-09-26

评论 抢沙发

3 + 4 =


wordpress去除分类链接中的category

长按图片转发给朋友

感谢打赏

支付宝扫一扫打赏

微信扫一扫打赏

这绝对不是广告!

切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册