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

相关推荐

  • WP Smart Preloader 为你的WordPress添加预加载动画。

    有时候我们会看到一些网站有预加载动画效果,不仅漂亮而且可以避免因网站加载慢而造成的内容显示补全的情况,如果你的网站加载速度有瓶颈或者想更具设计感,那么也应该设置预加载动画,本文中我们教大家如何用WP Sm…

    2022年10月25日 wordpress开发
    034
  • Elementor怎样在一行内添加2个按钮。

    在网页设计中,双按钮是一种很常见的设计,在一行中添加2个按钮,可以让用户方便的进行选择,虽然在Elementor中并没有提供双按钮元素或者对应的选项,但是我们可以通过一些方法来实现一行内加2个或者更多的按钮,在…

    2022年10月25日 wordpress开发
    030
  • 如何禁用WordPress的XML-RPC功能。

    自3.5版本以来,WordPress 默认情况下开启了一个 XML-RPC 接口,让我们可以使用客户端来登陆和管理博客,但是由于客户端的限制,很多网站其实用不到这个功能,开启 xmlrpc 反而增加一些安全风险,在本文中我们来分…

    2022年10月25日
    040
  • 关于博客 域名。

    域名注册好后如何操作 在完成博客的域名注册之后,您需要进行一些关键步骤来确保您的网站正常运行,以下是一些基本的操作步骤。 1. 设置DNS记录 您需要将您的域名解析到您的博客服务器的IP地址,这通常通过修改您的…

    2024年6月14日
    01
  • 小编分享定制网站开发有什么优势。

        如今公司网站开发已变成很简单的事情,有的公司会选用定制,有的公司会选用模板。无论是选择哪一种都期望网站有个好的排名,有好排名的状况下,就必须有高品质的网站内容,高品质内容更易于蜘蛛的抓取。从而获…

    2023年6月16日
    00
  • 使用WPCLI重新生成WordPress网站缩略图。

    WP主题站前些日子更换了主题,虽然说前端基本已经部署完毕,但是网站还是存在一些问题的,其中非常重要的一点就是缩略图问题,因为之前用的Newspaper主题会生成许多缩略图以应用在网站的各个地方,而新的主题比较简…

    2022年10月25日
    028
  • 教你如何理解网站SEO主题的矛与盾。

    我们知道页面内容是整个seo工作的核心灵魂,因此,我们在创建内容的时候总是非常专注与谨慎,尽量避免错过任何细节。 同时,我们已经不止一次的强调页面主题而相当于页面独立关键词排名的重要性,但最近,经过我们…

    2023年6月22日
    00
  • 关于防范黑客攻击:选择合适的WordPress安全插件。

    选择适合的WordPress安全插件,有效防范黑客攻击。 在当今的互联网时代,网站安全问题日益严重,尤其是对于使用WordPress搭建的网站来说,由于其开源的特性,使得其成为黑客攻击的主要目标,为了保护我们的网站安全…

    2024年7月10日
    00

联系我们

QQ:951076433

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