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年6月16日
    02
  • WordPress添加自定义CSS代码的几种方法。

    在定制WordPress站点时,除了可以使用主题的选项调整外,CSS代码也是我们常用到的一种方法,不管是修改样式、调整距离还是隐藏特定元素,我们都可以用CSS来完成,而且很多时候主题没有的功能,你询问作者它也会给出…

    2022年10月25日
    042
  • 我来教你如何选择合适的网站开发公司。

        互联网技术的发展趋势日渐迅速,网站的必要性也看起来越来越大,另外网站开发公司中间的市场竞争也日渐猛烈。如何选择一家适合的网站开发公司一直是一个困惑众多建网站顾客的难题,挑选可靠的网站建设公司必须…

    2023年6月16日
    00
  • 我来教你洛阳营销型网站开发定位策划。

        凡事都有一个过程,从无到有、由小到大。网络营销也不例外,做网络营销也要循序渐进,慢慢摸索,找出一条适合自己的路。    洛阳网站开发初期,目标一定要小。网站开发,没有足够的实力是不能一口吃个胖子的。…

    2023年6月16日
    08
  • 查看WordPress主题和插件的4种方法。

    有时候,我们看到一些比较漂亮的Wordpress站点,就想知道它们使用的什么主题,或者插件,但是大部分的网站都会将底部的主题链接去除,那么我们有什么办法能够获取主题呢,其实方法很多,下面就给大家介绍下查看Word…

    2022年10月25日 wordpress开发
    034
  • 什么是SEO友好的网页设计

    SEO网页设计是创建搜索引擎可以抓取,索引和理解的网站的过程。 搜索引擎抓取工具无法与人类等网站“读取”和“互动”。相反,他们访问网站的HTML代码并查找信号,以帮助他们了解网站的结构和内容的含义。 为什么SEO友…

    2019年5月24日 SEO操作
    0530
  • 通过代码实现wordpress静态文件分离到阿里云oss的方法

    我们平时做wordpress网站基本都会做动静分离,把静态文件比如图片、css、js等文件放到对象存储中,这样可以大量节省网站服务器带宽,同时对静态文件做cdn加速来实现网站速度提升。 比如我们的这个网站,在未做动静…

    2024年6月26日 wordpress开发
    022
  • 我来分享摄影网站开发如何取得成功。

    每一个关键的日子必须用摄影来纪念的,因此摄影服务项目的销售市场需要量还是挺大的。而在对每个摄影网站掌握的全过程中,摄影网站开发则变成大家特别关注的一部分,在实际设计的那时候,应当考虑到十分全方位的內…

    2023年6月16日
    01

联系我们

QQ:951076433

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