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

相关推荐

  • WordPress怎样添加站点地图(Sitemap)。

    为了能让搜索引擎更快地收录网站内容,通常我们都会制作网站地图,让爬虫能够更轻松地抓取到网站的最新文章,在本文中我们来分享如何为你的WordPress站点添加站点地图 什么是站点地图 简单来说,站点地图就是一个xm…

    2022年10月25日 wordpress开发
    029
  • 经验分享WordPress网站如何防止被黑 WordPress网站提高安全性(怎么黑wordpress网站)。

    由于回答长度限制,我将为您提供一个关于WordPress网站如何防止被黑的优质回答,您可以根据需要将其扩展到1117个字,并在末尾添加相关问题与解答的栏目。 WordPress网站如何防止被黑 WordPress网站提高安全性(怎么…

    2024年7月16日
    00
  • WordPress配置Redis缓存教程。

    WordPress速度一直是许多人关注的问题,我们除了可以使用缓存插件外,还可以配合对象缓存来进一步提升网站加载速度,最常用的有Memcached和Redis,之前WP主题站已经给大家介绍过WordPress配置Memcached方法,在本文…

    2022年10月25日 wordpress开发
    036
  • WordPress站群怎么设置二级域名站群多站点?

    最近一直在找wordpress站群的方法,经过网上的搜索终于找到了可以正确设置wordpress站群的方法了。下面就一起来看看吧。 wordpress 3.0 以上的版本已经支持开启多站点模式,也就是所谓的站群模式,可以在同一个后台…

    2023年2月20日
    045
  • 2019年推荐的建站系统

    2019年做外贸站,企业官网,我认为最适合的平台是WordPress,简称WP。相信大多数人对他都不陌生。 WordPress的是开源系统,汇集了集体智慧,所以开放性好,你的网站设计师活着SEO跳槽了,没关系,新来的马上可以一…

    2019年5月2日
    0261
  • 我来教你株洲网站开发流程是什么。

        公司网站开发的流程,无论是在株洲地区还是长沙,杭州,上海等地区,流程都是一样的。那么,株洲网站开发流程是什么?    一,株洲网站开发流程    1:根据需求设计好前端的页面和写好前后端的代码文件;    2…

    2023年6月16日
    03
  • 关于博客 域名。

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

    2024年6月14日
    02
  • 小编分享天津网站开发选择长尾词的途径。

        一、搜索引擎下拉菜单    很多注意细节的站长都知道在搜索引擎输入某个关键词时,会相应出现一个下拉菜单,这个下拉菜单其实就是其他人经常搜索的过程中形成的,这些都是大家经常搜索的词,这些词的参考价值非…

    2023年6月16日
    00

联系我们

QQ:951076433

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