WordPress如何去掉category链接

WordPress默认分类目录链接会带有category , 为了链接扁平化,层级不超过三级,更有利于Seo优化,所以要删掉category层级。

主题文件functions.php中加上下面代码即可。

//删除链接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] = '%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;
}
// 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;
}

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/14349.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚重蔚管理团队
上一篇 2019年10月30日 16:06
下一篇 2019年10月30日 16:23

相关推荐

  • 聊聊2023年聚划算年货节主题团如何收费。

    2023年聚划算年货节主题团的收费方式如下: 收费计算公式:**基础费用+封顶费用** 其中基础费用=12000元固定费用+渠道内佣金,上限是16万元(6日游合计)。而封顶费用则是根据商品在渠道成交的金额而定:当累计确认…

    2023年10月23日
    05
  • WordPress菜单设置教程。

    对于刚刚接触WordPress的新手来说,最困惑的地方莫过于它的菜单设置,许多人不知道该如何自定义WordPress的菜单,而菜单又是每个访客最先看到的地方,所以导航菜单是我们必须要设置的 WordPress的菜单功能很强大,…

    2022年10月24日 wordpress开发
    018
  • WordPress添加复制弹窗提示版权。

    在许多网站中,我们会发现如果复制器内容的话,会弹出一个窗口提示转载注明出处,这样就不会有人随意转载,今天就介绍下如何使用一段代码为Wordpress添加复制弹窗提示 首先将如下的代码中copyNoticeString的文字提…

    2022年10月25日
    019
  • Word发布Wordpress博客文章

    Office作为我们的常用办公软件,也能实现离线发布Wordpress博客的功能,既方便又快捷,还能解决了Wordpress本身编辑器不够强大的问题,利用Office word2013的编辑功能让文章更具有用户体验。 # 软件准备 Word软件一…

    2024年6月28日 wordpress开发
    029
  • WordPress安装旧版本插件方法(插件降级)。

    有时候我们更新插件后会出现一些错误,或者不能使用,等待开发者修复的话可能需要一些时间,如果这款插件比较重要的话,那么最好就是先安装到旧的版本,今天我们就介绍下如何为WordPress安装旧版插件 到WordPress官…

    2022年10月25日 wordpress开发
    025
  • WordPress通过SQL语句快速删除无引用的标签方法。

    从标签的使用方法上来说,一个标签不可能只对应一片文章,如果删除文章就把该文章的标签都删除,就会造成其他文章的标签错误。就会造成这个标签成为一个空标签,这显然是不好的。因此我们需要定期的清理一下那些空…

    2023年4月23日
    034
  • 我来教你房地产网站开发有哪些设计要求。

    互联网已经发展到了一定程度,各行各业都在着手建设自己的网站。房地产网站开发可以帮助企业提高品牌形象,提高企业知名度,为企业带来利润,下面给大家讲一下房地产网站开发有哪些要求。一、对房地产行业有很清楚…

    2023年6月16日
    05
  • 分享汕头网站开发交互设计是什么。

        对于互联网了解不多的汕头网站开发公司来说,也一定是听说过交互设计的,但是当深入了解网站的交互设计到底是什么的时候,大家可能完全说不上来,那么汕头网站开发的交互设计到底是什么呢?今天就让我们一起了解…

    2023年6月16日
    00

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息