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

相关推荐

  • WordPress安全防护 你可以做这些事情。

    想要一个稳定的WordPress站点,除了要保证网站性能足够外,还要注意的一点就是网站安全,到2019年WordPress已经支撑了全球三分之一的网站,各种黑客针对WordPress的攻击也更加频繁,那么我们要如何保证自己的WordPr…

    2022年10月25日 wordpress开发
    028
  • 如何移除WordPress顶部工具栏的标志。

    在日常管理WordPress的过程中,顶部工具栏是一个非常重要的区域,我们可以在这里快速进入网站后台,可以进行查看评论、发布文章操作,还可以快速编辑页面、清除缓存等等,工具栏上的功能都是非常重要且常用的 但是…

    2022年10月25日
    045
  • 一个商城网站开发价格费用包括哪些?

    谈谈:一个商城网站开发价格费用包括哪些?商城网站的组成部分:域名、服务器、网站设计与程序开发。但是这里要提醒各位一个网站建设的的成本大多是是在人工成本上,但是越能帮助企业实现网站价值的建站团队,企业…

    2023年5月25日
    01
  • wordpress插件自动更新设置方法。

    在安全方面来说,更新WordPress插件是一件非常必要的事情,因为低版本的插件可能会被他人利用来破坏网站,我们必须尽量保证自己的插件是最新版本防止漏洞,不过这的确是一件非常麻烦的事情 对于网站使用频率较低的…

    2022年10月24日
    026
  • 教你安顺网站开发。

    安顺网站开发是指在中国贵州省安顺市进行的网站设计与编程工作,通常涉及前端设计、后端开发、数据库管理等技术。 安顺网站开发 在互联网高速发展的今天,网站已经成为了企业、组织乃至个人展示自身形象和产品的重…

    2024年6月28日
    01
  • 我来教你网站开发需要注意的地方。

        一:网站结构     网站结构是搜索引擎蜘蛛爬取的基础,只有合理的、有逻辑的、简洁的结构才能够方便蜘蛛的爬取,增加网站收录。     二:网站质量     要想提高网站质量,首先不能直接使用模板,做一个差异化的…

    2023年6月16日
    02
  • WordPress怎样删除特定主题或插件翻译。

    在使用WordPress搭建中文站点时,有时候会发现一些主题或者插件翻译不准确,尤其是后台翻译,有些翻译也并没有太多校对,虽然没有什么大的问题,但是有些词汇对于不熟悉的人来说还是会容易产生一些误导的,在本文中…

    2022年10月25日
    021
  • 教你企业为什么要做营销型网站开发。

        首先,看营销型网站建设与通信网站的区别    为什么网站会给企业带来好处? 下面让我们来分析一下营销型网站建设公司对企业市场营销型网站建设的优势。 总是听别人说话,但不知道市场营销网站和传统网站的区别…

    2023年6月11日
    00

联系我们

QQ:951076433

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