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

(0)
上一篇 2019年10月30日 16:06
下一篇 2019年10月30日 16:23

相关推荐

  • 设计教程:成功网站设计的5个步骤

    本文将向您介绍如何设计网站的5个基本步骤,网站设计过程将帮助您成为更高效,更成功的网站设计师。 当今设计行业最重要的因素之一,尤其是自由设计,是一个成功的业务工作流程,用更少的时间做更多事情。为了节省时...

    2019年4月11日
    0215
  • 网页制作公司哪家好?技术全面很重要

    对於现在的很多网页制作的公司来说,他们在制作网页的时候总会有这样那样的问题,不同公司里面出来的品质有着明显的区别,这是很多人们最为明显的感觉,所以让非常多的需要做网页制作的人们感觉到不知道选择那些公司...

    2022年6月14日
    076
  • 如何提高网站转化率?(二)

    如何提高网站转化率?相信很多网站运营人员会有这样的疑问,今天重蔚来继续跟大家分享几个最重要的网页设计技巧,这些技巧将使你的网站转换率飙升。 重视手机版网页设计 在2018年,全球约有33亿手机用户。 预计在201...

    2019年7月2日
    0140
  • 在wordpress网站优化过程中的robots.txt爬虫协议。

    爬虫协议Robots.txt是在网站上找到的第一个文件搜索蜘蛛。它告诉搜索引擎可以抓取哪些页面以及哪些页面无法抓取。 当我们在我们的网站上有错误页面时,或者某些页面不希望蜘蛛抓取时,合理配置的机器人协议可以使蜘...

    2022年6月28日
    051
  • WordPress常用的函数、方法汇总

    选择使用 WordPress来搭建博客,主要原因便在于 WordPress有较高的流行度,还有各种围绕其进行的开发的扩展功能应有尽有,基本上可以说我们在博客建设中所需的任何功能,都已有人想到并得到实现,让你不必在博客具体...

    2019年5月14日
    0186
  • 记录wordpress关于修改SEO标题上面的title分隔符的方法。

    因为今天看到我的seo标题上面跟着的网站title分隔符上面左右有两个空格。因为前面都是没有空格的,所以导致看起来有点不顺心吧。于是今天在网上查了下资料,总于把这个问题解决了。 解决方法: 我们先依次进入wp-inc...

    2022年3月22日
    0217
  • 代码优化有什麽窍门?优化每个细节为运行速度提速

    代码优化对代码的运行效率有没有帮助?如果项目着眼于尽快无BUG上线,那麽此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的...

    2022年6月25日
    054
  • 多语言网页设计实现方案

    1,静态:就是为每种语言分别准备一套页面文件,要麽通过文件後缀名来区分不同语言,要麽通过子目录来区分不同语言。 例如对於首页文件index_en.htm提供英语界面,index_gb.htm提供简体中文界面,index_big.htm提供繁...

    2022年6月25日
    055