wordpress去除分类URL的categpory

news2024/11/16 11:43:46

前言

在日常使用Wordpress搭建网站时,发现文章或者分类页的URL地址中默认带有Category,URL层级过长会影响我们网站SEO的优化,也不利于用户体验。这里讲一下如何去除URL中categpory的方法。

操作

  • 第一步先登录到WordPress后台,然后依次点击“设置—>固定链接”选项;

在这里插入图片描述

  • 接下来在“可选”选项下的“分类目录前缀”后面的文字框中填写一个英文的点号“.”,然后保存更改,这个样网址中的category就去掉了。

在这里插入图片描述
这样保存设置后就可以了,有兴趣的朋友可以自己测试看看。

404错误

  • 另外如果你修改后原文章的链接无法打开,出现404错误,可能是与你做的固定链接设置中常用设置有关,如果出现这个情况只需要在自定义结构里面加上“/%category%”。

在这里插入图片描述

  • 这里的.html是将wordpress设置伪静态URL后还收录动态的URL,可以按需添加。
  • 需要注意的是这里的/%category%和URL里的category是不一样的。

其他方法

一、使用插件

如果你是傻瓜式建站,没有一定的代码基础,又很介意url中的“category”的话,建议使用插件,直接在wp后台搜索插件安装就可以!然后刷新网站就会发现url中的“category”已经被顺利去除。

推荐两款插件:

No category parents:作者milardovich,上面插件的升级版,不仅能去掉分类链接的前缀category,还能去掉父分类 parent-category。例如能把“/category/parent-category/my-category/”换成“/my-category/”形式。

下载地址:WordPress官方下载;作者milardovich博客下载

优点:安装简单,老少皆宜。无论是初建成的博客,还是正打算使用固定链接 /永久链接的博客,还是被搜索引擎收录良好的博客。用不着修改代码,升级之时没有顾虑。使用 301跳转,把原链接进行跳转。最大程度防止搜索引擎降权,防止原链接打不开。

不足:插件或许会造成空间负担。这里不说是缺点,就是因为,造成的“空间负担”微乎其微,不应该是缺点。比较在意的就不用,无所谓推荐使用。

WP No Category Base:作者iDope,是为去除固定链接中分类链接里的category而开发出来的一款wordpress插件,被下载近5万次。安装启用此插件后,对原来的分类地址做了301跳转,对SEO优化有好处,把降权风险降到最低。

下载地址:WordPress官方下载;作者iDope博客下载

但是不得不说的是,wp使用插件过多,会导致网站加载缓慢。这是使用插件的方式解决问题的弊病。

二、使用代码去除“cotegory”

直接贴如下代码,将下面代码加到主题functions.php中?>前保存,回到后台固定链接设置点击“保存更改”两次。如果前台分类目录页面不能访问,就再固定链接设置更新下;回到目录页面就能看到链接中的category被去除了,访问原来带category链接也会跳转到新链接上。

/*  
*WordPress去除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;
}

三、修改函数

1、找到你Wordpress博客wp-includes文件夹下的category-template.php。

2、打开此文件,搜索(get_category_link()函数里)的以下代码:

$catlink = $wp_rewrite->get_category_permastruct();

在其后,另起一行加入:

$catlink = str_replace('/category' , '' , $catlink);
  • 代码作用是,使用字符串替换函数,把获取分类链接函数的分类链接里的/category替换掉。达到去掉分类链接前缀/category的目的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/642532.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端样式网站(前端css框架)

1. Bootstrap:Bootstrap The most popular HTML, CSS, and JS library in the world.Bootstrap 是最流行的 CSS 框架,提供了丰富的前端样式和组件,非常适合开发响应式网站和应用程序。 2. Bulma:Bulma: Free, open source, and modern CSS framework based on FlexboxBulma 是…

nodejs 版本切换(windows版)

一、按健winR弹出窗口&#xff0c;键盘输入cmd,然后敲回车。然后进入命令控制行窗口&#xff0c;并输入where node查看之前本地安装的node的路径。 二、找到上面找到的路径&#xff0c;将node.exe所在的父目录里面的所有东西都删除。 三、从官网下载安装包 https://github.com/…

一文看懂!shell编程-【提取IP地址、文件归档、发送消息】

【引言】 您是否曾经遇到过需要提取大量IP地址、归档文件、发送消息等烦琐的工作&#xff1f; 如果是&#xff0c;那么您一定不能错过这篇文章&#xff01; 在本文中&#xff0c;我们将探讨Shell编程的各种技巧和方法&#xff0c;帮助您轻松完成这些任务。无需任何编程基础&…

这些常用的IC专业术语,你了解多少?

IC工程师在日常的学习和工作中或多或少会都遇到一些专业的IC词汇。下面就来为大家盘点一下各个岗位的专业高频名词。&#xff08;文档内持续更新&#xff0c;全文档文末可领&#xff09; 数字功能验证高频名词 CIN (Carry INput)&#xff1a;进位输入 COUT(Carry OUTput)&…

关于数据库分库分表的一点想法

1 开篇 面对数据的激增&#xff0c;相信大家也都有分库分表的一些方案&#xff0c;这次的这个分享&#xff0c;算是自己的一个想法&#xff0c;可以当做一个参考方案&#xff0c;也欢迎相互讨论。 话不多说&#xff0c;直接进入主题。 日常开发中&#xff0c;实现数据库的分库…

系统稳定性与高可用保障

一、前言 高并发、高可用、高性能被称为互联网三高架构&#xff0c;这三者都是工程师和架构师在系统架构设计中必须考虑的因素之一。今天我们就来聊一聊三 H 中的高可用&#xff0c;也是我们常说的系统稳定性。 > 本篇文章只聊思路&#xff0c;没有太多的深入细节。阅读全…

“海底长城”合龙!揭秘深中海底隧道中的无损检测技术

作为工业大国&#xff0c;近年来国家在各类“大国工程”中投入巨大&#xff0c;同时也获得了喜人的成果&#xff0c;从长江三峡水利枢纽造福全国人民&#xff0c;到天问落火、空间站核心舱在轨开工&#xff0c;天舟二号货运飞船稳靠太空港&#xff0c;神舟十二号载人飞船成功发…

博睿数据应邀出席第五届双态IT北京用户大会,分享《如何帮助用户构建高级可观测性》

6月10日&#xff0c;第五届双态IT北京用户大会在北京召开&#xff0c;来自IT行业的各位专家齐聚一堂&#xff0c;分享行业理念、发展趋势、运维方法以及最佳实践。 博睿数据应邀出席大会&#xff0c;作《如何帮助用户构建高级可观测性》主题演讲&#xff0c;从云原生带来的挑战…

vue-cli3搭建项目实现移动端自适应----- flexible和 postcss-px2rem

1、安装 flexible和 postcss-px2rem npm i lib-flexible postcss-px2rem --save 2.在项目入口文件main.js 中引入lib-flexible import lib-flexible 3. 把目录 public/index.html 中的这个标签注释&#xff01;由于flexible会动态给页面header中添加标签 4.配置postcss-px2r…

不一样的ECS U实例

不一样的ECS U实例 ECS U实例U实例入门开通U实例服务远程连接U实例重置密码远程连接 安装Mysql安装Mysql并启动Mysql数据库操作本地远程连接Mysql 安装Nginx安装Nginx启动Nginx 安装JDK安装Tomcat 体验感受操作上适用场景上体验建议 参与ECSU实例评测&#xff0c;申请免费体验机…

操作系统原理 —— 文件的逻辑结构(二十三)

文件的逻辑结构 这里说的逻辑结构&#xff0c;就是指在用户看来&#xff0c;文件内部的数据应该是如何组织起来的&#xff0c;而 物理结构 指的是在操作系统看来&#xff0c;文件的数据是如何被存放的。 从逻辑结构结构来看&#xff0c;我们可以打开一个记事本&#xff0c;里…

渲染案例 | 《妈妈的牵牛花》荣获厦门国际动漫节金奖

2023年5月25日&#xff0c;第十五届厦门国际动漫节“金海豚奖”动画组获奖名单公布。其中&#xff0c;蓝海创意云《青团计划》优秀代表作品——《妈妈的牵牛花》荣获最佳学生动画金奖。 蓝海创意云作为行业内知名的影视动画渲染服务商&#xff0c;深度参与《妈妈的牵牛花》的后…

NAS文件管理拷贝速度很慢?大文件还是得用它!

有时候我们上传文件&#xff0c;个位数的传输速度实在让我们抓耳挠腮&#xff0c;不禁疑惑&#xff0c;有什么办法可以快速地传输文件呢&#xff1f; 就拿铁威马来说吧&#xff0c;铁威马的TOS 桌面上的 “文件管理” 是一款基于浏览器的网页版文件管理工具&#xff0c;该工具…

pytorch低版本找到并安装torch_geometric对应版本

一、找到官网的安装命令 不同版本的torch_geometric 对应的安装命令不完全一致&#xff0c;因此我们需要首先找到所需torch_geometric版本的正确安装命令。然后再去找对应的版本。 目前torch_geometric官网上只有pytorch 2.0.* 和1.13.* 版本的 torch_geometric 版本对应关系…

聊一聊性能测试

提到性能测试&#xff0c;很多从业相关人员可能会感觉比较混淆。 性能测试&#xff0c;它是属于测试领域一个专业细分领域&#xff0c;和软件测试一样&#xff0c;性能测试涉及到的范围和所需要的技能是非常广而精的&#xff0c;如果从大的类型来划分的话性能测试可以被分为&a…

Mac本地部署蘑菇个人博客详解

文章目录 一、安装Docker、Docker Compose1、系统要求2、安装Docker3、Docker-Compose 二、docker一键部署博客1、创建网络2、修改前端配置1&#xff09;自动修改前端配置2&#xff09;手动修改前端配置 3、开始部署 三、系统测试1、Nacos测试2、swagger测试3、前端页面4、后端…

Python datetime

datetime的作用 Python datetime的模块&#xff0c;用于处理日期和时间 datetime 官网 datetime模块的类如下 datetime 使用的时候需要引入datetime import datetime 下面说下其中的2个datetime 和 date date 类 import datetime # 获取当前日期 t1 datetime.date.today…

Linux基本工具

文章目录 Linux软件包管理器yum关于rzsz安装与卸载示例注意事项 Linux开发工具vimvim基本操作总结插入模式&#xff1a;移动光标快捷键删除文字复制替换撤销上一次操作更改跳至指定的行多文件操作底行模式 sudoLinux编译器gcc/g的使用预处理编译汇编链接生成可执行文件总结详谈…

如何用智能工牌+语音分析技术,从会话数据中,自动化获取客户满意度评价

在企业客户服务过程中&#xff0c;如何获得客户对产品和服务真实、实时、全面的评价&#xff0c;是企业在后续提升客户满意度、洞察客户需求、制定个性化营销策略、提升销售成交率和品牌口碑的 那么传统企业在获取客户评价和提升客户认知这块都是怎么做的呢&#xff1f; 用运营…

【办公类-30-01】(Python)大班毕业证书批量打印(幼儿信息、性别、毕业日期、学校、公章、签名、证书日期)

背景需求 大班毕业在即&#xff0c;需要打印大班幼儿毕业证书。&#xff08;已有打印好的彩色证书&#xff09; 常规操作模式&#xff1a; 1&#xff0c;统一盖章&#xff0c;反复签字 200份证书&#xff0c;每张证书上需要盖园所章、园长签字200次 2. 每个班主任自己领取班…