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

相关推荐

  • 小编分享南岸网站开发流行扁平化设计。

        何谓扁平化设计?    简言之,舍弃一切3D元素的设计,阴影、纹理、透视神马的统统不要。这种设计简洁高效、富有现代感。与之相反的风格叫做复合设计,即使用尽可能多的效果元素,给用户带来一种触觉感知。这...

    2023年6月16日
    00
  • WordPress修改代码常用的6种方法。

    在使用Wordpress做网站时,难免会遇到需要修改代码的情况,比如添加统计、修改样式等,今天本文为大家介绍下WordPress修改代码常用的6种方法 主题自带的代码功能 在很多主题中都提供了添加样式代码的功能,尤其是...

    2022年10月25日 wordpress开发
    033
  • WordPress速度优化教程。

    在使用Wordpress的时候,经常会听到许多人说Wordpress速度慢,作为一个使用Wordpress多年的人就想说,其实Wordpress速度很快,优化好了完全可以赶上各种国内的CMS,今天就和大家分享几点WordPress网站速度优化的...

    2022年10月25日 wordpress开发
    031
  • WP Super Cache加速WordPress网站教程。

    当为WordPress站点安装了一些插件后,我们经常需要面对一个问题就是加载速度的优化,安装的插件越多,对于网站加载速度影响越大,如果你想提升WordPress加载速度,一个简单易行的方法就是使用缓存插件,本文中我...

    2022年10月25日 wordpress开发
    036
  • 小编教你菏泽网站开发的信息应包括哪些方面。

        菏泽网站开发应遵循先内容后电子商务的原则。因此,信息服务非常重要。一般来说,网站信息应包括以下几个方面:    公司概况:包括公司背景、发展历程、主要业绩和组织结构。如果是上市公司,提供该公司股票...

    2023年6月16日
    00
  • 我来教你网站开发的前景如何。

        网站开发这一岗位具备较强的参与性,开发还可以了解为制作,诸多的小制作合起來就是说开发,诸多有联络的网页页面集合起来就变成网站,伴随着社会发展时期的变化,做网站开发这些方面工作中的人愈来愈多。许...

    2023年6月16日
    01
  • 删除WordPress主题的3种方法。

    在使用Wordpress搭建网站时,非常方便的一点就是你可以随时更换你的主题,让网站成为另一种风格,但是因为Wordpress只能使用一款主题,更换下来的主题就没有用了,所以对于不需要的主题,我们最好把他们删除,今...

    2022年10月25日
    025
  • WordPress菜单设置教程。

    对于刚刚接触WordPress的新手来说,最困惑的地方莫过于它的菜单设置,许多人不知道该如何自定义WordPress的菜单,而菜单又是每个访客最先看到的地方,所以导航菜单是我们必须要设置的 WordPress的菜单功能很强大...

    2022年10月24日 wordpress开发
    018

联系我们

QQ:951076433

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