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

相关推荐

  • 小编分享公司网站解决方案有哪些。

    1. 定制开发,2. 模板建站,3. 电商平台,4. 响应式设计,5. SEO优化,6. 内容管理系统,7. 云服务托管 (图片来源网络,侵删) 在当今的数字化时代,拥有一个专业的公司网站是每个企业的基本需求,它不仅可以帮助…

    2024年7月1日
    01
  • 我来说说wordpress 做企业网站。

    企业网站开发制作是一个复杂的过程,需要考虑到许多因素,包括网站的设计和功能、用户体验、搜索引擎优化(SEO)、安全性等,WordPress是一个非常流行的网站建设平台,它提供了许多工具和插件,可以帮助开发者快速…

    2024年6月30日
    00
  • WordPress修改默认分类目录方法。

    发表WordPress文章时,如果我们没有设置分类目录,会自动归纳到WordPress自带的未分类目录下,那么能不能自动分配到其他分类目录呢?今天我们教大家修改wordpress发表文章时的默认分类目录 修改之前,确保你已经添…

    2022年10月25日
    027
  • 织梦CMS模板。

    织梦CMS模板是一套用于快速搭建网站的工具包,包括页面布局、样式、功能模块等,可自定义设计,支持多语言,适合不同行业需求。 织梦CMS模板是一种用于快速搭建网站的工具,它包含了许多预先设计好的页面布局、样式…

    2024年6月28日
    00
  • WordPress文章和页面的区别。

    默认情况下,Wordpress提供了2种方式供我们写作内容,文章和页面,虽然说两者外观上并没有什么区别,但是从其他方面来说,还是有很多不同的,在为网站添加内容时,文章和页面的选择也非常重要 如果你是刚刚接触Word…

    2022年10月25日 wordpress开发
    026
  • wordpress广告位代码。

    WordPress广告代码是一种用于在WordPress网站上插入广告的代码,它可以帮助你通过展示广告来获得收入,例如谷歌AdSense、亚马逊联盟等,生成WordPress广告代码的方法有很多,下面将详细介绍如何生成这些代码。 1. …

    2024年6月29日
    00
  • 免费的WordPress沙箱测试工具poopy.life。

    相信对于Wordpress使用者来说,测试主题和插件是每个人都会做的事情,但是总是用自己的站点进行测试并不是一个很好的选择,因为每次安装新的东西,可能都会在数据库留下痕迹,而新建站点的话也比较麻烦,就算很熟悉…

    2022年10月25日 wordpress开发
    025
  • WordPress安全防护 你可以做这些事情。

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

    2022年10月25日 wordpress开发
    026

联系我们

QQ:951076433

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