如何去掉WordPress分类目录url链接中的category,如何处理生成的作者链接
一个新网站需要结合SEO,才能做成一个优秀的网站,
◆◆◆ 关于WordPress的分类目录url中含有category的处理办法:
1,如果是新网站这些设置需要提前做,方便以后做SEO
1、修改固定链接设置
打开WP后台-设置-固定链接
自定义结构,可以依据对SEO友好设置url
温馨提示:在分类目录那一栏里写入英文半角的点,此时得需要你的网站是全新的,没有分类栏目和文章,这样才不会出错,如果已有文章,这样的方法会使你的文章和分类栏目不存在
2.借助Wordpress插件
使用插件“WP No Category Base”插件
3.WP No category Base 插件的主体代码插入到function.php中(不使用插件,只放代码在后台)
//去除分类标志代码
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;
}
◆◆◆WordPress会生成很多作者链接
因为wp有一个作者归档的模板文件
wordpress作者的相关函数调用代码
<?php the_author(); ?> 显示文章的作者
2.<?php the_author_description(); ?> 显示文章作者的描述(作者个人资料中的描述)
3.<?php the_author_login(); ?> 显示文章作者的登录名
4.<?php the_author_firstname(); ?> 显示文章作者的firstname(名)
5.<?php the_author_lastname(); ?> 显示文章作者的lastname(姓)
6.<?php the_author_nickname(); ?> 显示文章作者的昵称
7.<?php the_author_ID(); ?> 显示文章作者的ID号
8.<?php the_author_email(); ?> 显示文章作者的电子邮箱
9.<?php the_author_url(); ?> 显示文章作者的网站地址
10.<?php the_author_link (); ?>(添加于2.1版本) 显示一个以文章作者名为链接名,链接地址为文章作者的网址的链接。
11.<?php the_author_icq(); ?> (不推荐使用) 显示文章作者的icq
12.<?php the_author_aim(); ?> 显示文章作者的aim
13.<?php the_author_yim(); ?> 显示文章作者的yim
14.<?php the_author_msn(); ?> (不推荐使用) 显示文章作者的msn
15.<?php the_author_posts(); ?> 显示文章作者已发表文章的篇数
16.<?php the_author_posts_link(); ?> 显示一个链接到文章作者已发表文章列表的链接
17.<?php list_authors(); ?> (不推荐使用) 显示blog所有作者和他们的相关信息。完整函数如下:
1. 一个不错的解决方法是将WordPress作者存档链接中的用户名改为昵称。
修改方法如下:
/**
* 将WordPress作者存档链接中的用户名改为昵称
* https://www.wpdaxue.com/use-nickname-for-author-slug.html
*/
//使用昵称替换用户名,通过用户ID进行查询
add_filter( 'request', 'wpdaxue_request' );
function wpdaxue_request( $query_vars )
{
if ( array_key_exists( 'author_name', $query_vars ) ) {
global $wpdb;
$author_id = $wpdb->get_var( $wpdb->prepare( "SELECT user_id FROM {$wpdb->usermeta} WHERE meta_key='nickname' AND meta_value = %s", $query_vars['author_name'] ) );
if ( $author_id ) {
$query_vars['author'] = $author_id;
unset( $query_vars['author_name'] );
}
}
return $query_vars;
} //使用昵称替换链接中的用户名
add_filter( 'author_link', 'wpdaxue_author_link', 10, 3 );
function wpdaxue_author_link( $link, $author_id, $author_nicename )
{
$author_nickname = get_user_meta( $author_id, 'nickname', true );
if ( $author_nickname ) {
$link = str_replace( $author_nicename, $author_nickname, $link );
}
return $link;
}
如果不希望蜘蛛爬取这些链接:给作者链接添加nofollow
打开wp-includes/author-template.php
查找‘<a href="%1$s" title="%2$s">%3$s</a>',只需加个nofollow标签,例如:'<a href="%1$s" title="%2$s" rel="nofollow">%3$s</a>'
2.更改wordpress主题内的function.php文件,在php循环内增加如下代码:
//给 the_author_post_link 生成的链接加上 rel="nofollow"
add_filter('the_author_posts_link','cis_nofollow_the_author_posts_link');
function cis_nofollow_the_author_posts_link ($link) {
return str_replace('<a href=','<a rel="nofollow" href=', $link);
}
更改/移除WordPress作者存档页面的前缀“author”
3.可以在根目录下新建一个作者页面author.php
如何去掉WordPress分类目录url链接中的category,如何处理生成的作者链接的更多相关文章
- 【面试题】如何去掉vue的url地址中的#号?及其原理?
如何去掉vue的url地址中的#号?及其原理? 点击打开视频讲解更加详细 如何去掉vue的url地址中的#号? import Vue from 'vue'; import VueRouter from ...
- wordpress去掉导航栏链接中的category
找到服务器目录下的functions..php文件,在末尾处添加如下内容即可. 路径:/htdocs/wp-content/themes/functions.php 要追加在functions.php ...
- 如何去掉wordpress网站url里面的index.php(Apache服务器)
在wordpress根目录新建.htaccess文件,并拷贝以下代码保存即可. <IfModule mod_rewrite.c> RewriteEngine On RewriteBase ...
- 通过修改源码,免插件实现wordpress去除链接中的category
将以下代码加在主题目录的functions.php /** * 去除category */ add_action('load-themes.php', 'no_category_base_refres ...
- URL 链接中 井号#、问号?、连接符& 分别有什么作用?
在一个 URL 中可以包含很多的内容,其中不仅仅是包含 26 个英文字母,10 个罗马数字,中文汉字,还可以拥有井号“#”.问号“?”.连接符“&”等三种最常见的符号,那么这些符号在网站中都有 ...
- 转载:URL链接中的不同用处
,井号:表示网页中的一个位置,被称之为锚点,常用于某个网页间不同位置的跳转,简单的说就是在一个网页中,URL 不变的情况下,通过添加"#buy"的字符在 URL 最后可以跳转到当前 ...
- 在WordPress后台菜单系统中添加Home链接
在wordpress后台如果想打开前台的话,要想先把鼠标移动到左上角菜单,然后在下拉菜单中点击“查看站点”,很是麻烦,能不能在 WordPress 后台菜单系统中添加 Home 链接呢? 将下面代码复 ...
- URL 链接中的 UTM参数何定义?
浏览网页或者点击广告的时候,细心的朋友们或者有关注浏览器地址栏的 URL 链接时,一定会发现 utm_source 或者与其类似的链接,那么链接中的这个UTM参数有什么用呢? UTM 为“Urchin ...
- 在nginx下去掉ci框架url中的index.php
ci框架默认的url规则中带有应用的入口文件,例如: example.com/index.php/news/article/my_article 在以上URL中带有入口文件index.PHP,这样的U ...
- 截取URL链接中字段的方法
第一个页面像第二个页面传参方法 location.href = "poster.html?" + "name=" + name + "&tim ...
随机推荐
- #拓扑排序#洛谷 5157 [USACO18DEC]The Cow Gathering P
题目 给出一棵树和一些限制关系 \((a_i,b_i)\), 一种合法的删点序列当且仅当删除一个点之后树的大小不超过 1 或不存在孤立点, 并且 \(a_i\) 要比 \(b_i\) 先删除,问 \( ...
- 使用OHOS SDK构建cityhash
参照OHOS IDE和SDK的安装方法配置好开发环境. 从github下载源码. 执行如下命令: git clone https://github.com/google/cityhash.git 从v ...
- 使用OHOS SDK构建libjpeg-turbo
参照OHOS IDE和SDK的安装方法配置好开发环境. 从github下载源码. 执行如下命令: git clone --depth=1 https://github.com/libjpeg-turb ...
- Pandas高级教程之:Dataframe的重排和旋转
目录 简介 使用Pivot 使用Stack 使用melt 使用Pivot tables 使用crosstab get_dummies 简介 使用Pandas的pivot方法可以将DF进行旋转变换,本文 ...
- 【FAQ】推送服务常见问题及解答
目录 1.报错6003解决方案. 2.推送成功收不到消息. 3.Gettoken返回0,无法进入onToken函数,无法收到广播. 4.如何在华为开放平台查看消息属性,推送的时候带了importanc ...
- 高并发场景QPS等专业指标揭秘大全与调优实战
高并发场景QPS等专业指标揭秘大全与调优实战 最近经常有小伙伴问及高并发场景下QPS的一些问题,特意结合项目经验和网上技术贴做了一些整理和归纳,供大家参考交流. 一.一直再说高并发,多少QPS才算高并 ...
- nginx重新整理——————nginx 的设计模型[八]
前言 简单介绍一下nginx的设计模型,对我们设计程序还是有一定帮助的. 正文 这里先列一下模型哈,后面有深入篇,介绍的比较清楚. nginx 的处理模型: nginx 进程模型: 可以看到下面列出了 ...
- 关于双独立时钟fifo的一些细节探讨
最近遇到一个项目,就是接收数据转换成本地数据.两个时钟是频率是基本一样,但是存在5%偏差,而且存在相位差. 这是基本需求.一般转换的办法就是fifo写入有效数据,然后用empty读取出来.但是发现有个 ...
- log4j2 lookup漏洞修复方法
2021.12.10凌晨,Apache Log4j远程代码执行漏洞细节被公开,参考链接:https://unit42.paloaltonetworks.com/apache-log4j-vulnera ...
- 本地部署Llama3-8B/72b 并进行逻辑推理测试
美国当地时间4月18日,Meta开源了Llama3大模型,目前开源版本为8B和70B.Llama 3模型相比Llama 2具有重大飞跃,并在8B和70B参数尺度上建立了LLM模型的新技术.由于预训练和 ...