一个新网站需要结合SEO,才能做成一个优秀的网站,

◆◆◆ 关于WordPress的分类目录url中含有category的处理办法:

1,如果是新网站这些设置需要提前做,方便以后做SEO

1、修改固定链接设置

打开WP后台-设置-固定链接

自定义结构,可以依据对SEO友好设置url

温馨提示:在分类目录那一栏里写入英文半角的点,此时得需要你的网站是全新的,没有分类栏目和文章,这样才不会出错,如果已有文章,这样的方法会使你的文章和分类栏目不存在
2.借助Wordpress插件

使用插件“WP No Category Base”插件

3.WP No category Base 插件的主体代码插入到function.php中(不使用插件,只放代码在后台)

  1. //去除分类标志代码
  2. add_action( 'load-themes.php', 'no_category_base_refresh_rules');
  3. add_action('created_category', 'no_category_base_refresh_rules');
  4. add_action('edited_category', 'no_category_base_refresh_rules');
  5. add_action('delete_category', 'no_category_base_refresh_rules');
  6. function no_category_base_refresh_rules() {
  7. global $wp_rewrite;
  8. $wp_rewrite -> flush_rules();
  9. }
  10. // register_deactivation_hook(__FILE__, 'no_category_base_deactivate');
  11. // function no_category_base_deactivate() {
  12. // remove_filter('category_rewrite_rules', 'no_category_base_rewrite_rules');
  13. // // We don't want to insert our custom rules again
  14. // no_category_base_refresh_rules();
  15. // }
  16. // Remove category base
  17. add_action('init', 'no_category_base_permastruct');
  18. function no_category_base_permastruct() {
  19. global $wp_rewrite, $wp_version;
  20. if (version_compare($wp_version, '3.4', '<')) {
  21. // For pre-3.4 support
  22. $wp_rewrite -> extra_permastructs['category'][0] = '%category%';
  23. } else {
  24. $wp_rewrite -> extra_permastructs['category']['struct'] = '%category%';
  25. }
  26. }
  27. // Add our custom category rewrite rules
  28. add_filter('category_rewrite_rules', 'no_category_base_rewrite_rules');
  29. function no_category_base_rewrite_rules($category_rewrite) {
  30. //var_dump($category_rewrite); // For Debugging
  31. $category_rewrite = array();
  32. $categories = get_categories(array('hide_empty' => false));
  33. foreach ($categories as $category) {
  34. $category_nicename = $category -> slug;
  35. if ($category -> parent == $category -> cat_ID)// recursive recursion
  36. $category -> parent = 0;
  37. elseif ($category -> parent != 0)
  38. $category_nicename = get_category_parents($category -> parent, false, '/', true) . $category_nicename;
  39. $category_rewrite['(' . $category_nicename . ')/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$'] = 'index.php?category_name=$matches[1]&feed=$matches[2]';
  40. $category_rewrite['(' . $category_nicename . ')/page/?([0-9]{1,})/?$'] = 'index.php?category_name=$matches[1]&paged=$matches[2]';
  41. $category_rewrite['(' . $category_nicename . ')/?$'] = 'index.php?category_name=$matches[1]';
  42. }
  43. // Redirect support from Old Category Base
  44. global $wp_rewrite;
  45. $old_category_base = get_option('category_base') ? get_option('category_base') : 'category';
  46. $old_category_base = trim($old_category_base, '/');
  47. $category_rewrite[$old_category_base . '/(.*)$'] = 'index.php?category_redirect=$matches[1]';
  48. //var_dump($category_rewrite); // For Debugging
  49. return $category_rewrite;
  50. }
  51. // Add 'category_redirect' query variable
  52. add_filter('query_vars', 'no_category_base_query_vars');
  53. function no_category_base_query_vars($public_query_vars) {
  54. $public_query_vars[] = 'category_redirect';
  55. return $public_query_vars;
  56. }
  57. // Redirect if 'category_redirect' is set
  58. add_filter('request', 'no_category_base_request');
  59. function no_category_base_request($query_vars) {
  60. //print_r($query_vars); // For Debugging
  61. if (isset($query_vars['category_redirect'])) {
  62. $catlink = trailingslashit(get_option('home')) . user_trailingslashit($query_vars['category_redirect'], 'category');
  63. status_header(301);
  64. header("Location: $catlink");
  65. exit();
  66. }
  67. return $query_vars;
  68. }

 ◆◆◆WordPress会生成很多作者链接
   因为wp有一个作者归档的模板文件

  wordpress作者的相关函数调用代码

  1. <?php the_author(); ?> 显示文章的作者
  2. 2.<?php the_author_description(); ?> 显示文章作者的描述(作者个人资料中的描述)
  3. 3.<?php the_author_login(); ?> 显示文章作者的登录名
  4. 4.<?php the_author_firstname(); ?> 显示文章作者的firstname(名)
  5. 5.<?php the_author_lastname(); ?> 显示文章作者的lastname(姓)
  6. 6.<?php the_author_nickname(); ?> 显示文章作者的昵称
  7. 7.<?php the_author_ID(); ?> 显示文章作者的ID号
  8. 8.<?php the_author_email(); ?> 显示文章作者的电子邮箱
  9. 9.<?php the_author_url(); ?> 显示文章作者的网站地址
  10. 10.<?php the_author_link (); ?>(添加于2.1版本) 显示一个以文章作者名为链接名,链接地址为文章作者的网址的链接。
  11. 11.<?php the_author_icq(); ?> (不推荐使用) 显示文章作者的icq
  12. 12.<?php the_author_aim(); ?> 显示文章作者的aim
  13. 13.<?php the_author_yim(); ?> 显示文章作者的yim
  14. 14.<?php the_author_msn(); ?> (不推荐使用) 显示文章作者的msn
  15. 15.<?php the_author_posts(); ?> 显示文章作者已发表文章的篇数
  16. 16.<?php the_author_posts_link(); ?> 显示一个链接到文章作者已发表文章列表的链接
  17. 17.<?php list_authors(); ?> (不推荐使用) 显示blog所有作者和他们的相关信息。完整函数如下:

1. 一个不错的解决方法是将WordPress作者存档链接中的用户名改为昵称。
修改方法如下:

  1. /**
  2. * 将WordPress作者存档链接中的用户名改为昵称
  3. * https://www.wpdaxue.com/use-nickname-for-author-slug.html
  4. */
  5. //使用昵称替换用户名,通过用户ID进行查询
  6. add_filter( 'request', 'wpdaxue_request' );
  7. function wpdaxue_request( $query_vars )
  8. {
  9. if ( array_key_exists( 'author_name', $query_vars ) ) {
  10. global $wpdb;
  11. $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'] ) );
  12. if ( $author_id ) {
  13. $query_vars['author'] = $author_id;
  14. unset( $query_vars['author_name'] );
  15. }
  16. }
  17. return $query_vars;
  18. }
  19.  
  20. //使用昵称替换链接中的用户名
  21. add_filter( 'author_link', 'wpdaxue_author_link', 10, 3 );
  22. function wpdaxue_author_link( $link, $author_id, $author_nicename )
  23. {
  24. $author_nickname = get_user_meta( $author_id, 'nickname', true );
  25. if ( $author_nickname ) {
  26. $link = str_replace( $author_nicename, $author_nickname, $link );
  27. }
  28. return $link;
  29. }

如果不希望蜘蛛爬取这些链接:给作者链接添加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"

  1. add_filter('the_author_posts_link','cis_nofollow_the_author_posts_link');
  2.  
  3. function cis_nofollow_the_author_posts_link ($link) {
  4.  
  5. return str_replace('<a href=','<a rel="nofollow" href=', $link);
  6.  
  7. }

更改/移除WordPress作者存档页面的前缀“author”

3.可以在根目录下新建一个作者页面author.php  

  

  

 

如何去掉WordPress分类目录url链接中的category,如何处理生成的作者链接的更多相关文章

  1. 【面试题】如何去掉vue的url地址中的#号?及其原理?

    如何去掉vue的url地址中的#号?及其原理? 点击打开视频讲解更加详细 如何去掉vue的url地址中的#号? import Vue from 'vue'; import VueRouter from ...

  2. wordpress去掉导航栏链接中的category

    找到服务器目录下的functions..php文件,在末尾处添加如下内容即可. 路径:/htdocs/wp-content/themes/functions.php 要追加在functions.php ...

  3. 如何去掉wordpress网站url里面的index.php(Apache服务器)

    在wordpress根目录新建.htaccess文件,并拷贝以下代码保存即可. <IfModule mod_rewrite.c> RewriteEngine On RewriteBase ...

  4. 通过修改源码,免插件实现wordpress去除链接中的category

    将以下代码加在主题目录的functions.php /** * 去除category */ add_action('load-themes.php', 'no_category_base_refres ...

  5. URL 链接中 井号#、问号?、连接符& 分别有什么作用?

    在一个 URL 中可以包含很多的内容,其中不仅仅是包含 26 个英文字母,10 个罗马数字,中文汉字,还可以拥有井号“#”.问号“?”.连接符“&”等三种最常见的符号,那么这些符号在网站中都有 ...

  6. 转载:URL链接中的不同用处

    ,井号:表示网页中的一个位置,被称之为锚点,常用于某个网页间不同位置的跳转,简单的说就是在一个网页中,URL 不变的情况下,通过添加"#buy"的字符在 URL 最后可以跳转到当前 ...

  7. 在WordPress后台菜单系统中添加Home链接

    在wordpress后台如果想打开前台的话,要想先把鼠标移动到左上角菜单,然后在下拉菜单中点击“查看站点”,很是麻烦,能不能在 WordPress 后台菜单系统中添加 Home 链接呢? 将下面代码复 ...

  8. URL 链接中的 UTM参数何定义?

    浏览网页或者点击广告的时候,细心的朋友们或者有关注浏览器地址栏的 URL 链接时,一定会发现 utm_source 或者与其类似的链接,那么链接中的这个UTM参数有什么用呢? UTM 为“Urchin ...

  9. 在nginx下去掉ci框架url中的index.php

    ci框架默认的url规则中带有应用的入口文件,例如: example.com/index.php/news/article/my_article 在以上URL中带有入口文件index.PHP,这样的U ...

  10. 截取URL链接中字段的方法

    第一个页面像第二个页面传参方法 location.href = "poster.html?" + "name=" + name + "&tim ...

随机推荐

  1. #K-D Tree#洛谷 2093 [国家集训队]JZPFAR

    题目 平面上有 \(n\) 个点.现在有 \(m\) 次询问,每次给定一个点 \((px, py)\) 和一个整数 \(k\), 输出 \(n\) 个点中离 \((px, py)\) 的距离第 \(k ...

  2. #博弈论#HDU 1847 Good Luck in CET-4 Everybody!

    题目 有\(n\)个石子,每次只能取2的自然数幂个, 取完石子的人获胜,问先手是否必胜 分析 如果不是3的倍数,那么取完一次一定能剩下3的倍数个, 反之亦然,那么3的倍数为必败状态 代码 #inclu ...

  3. #错排,高精度#洛谷 3182 [HAOI2016]放棋子

    题目 分析 这题目太迷惑人了: 每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列 \(n\) 个棋子也满足每行只有一枚棋子,每列只有一枚棋子 仔细想想会发现求的是错排方案,那也就 ...

  4. #cdq分治,树状数组#洛谷 5459 [BJOI2016]回转寿司

    题目 求 \[\sum_{i=1}^n\sum_{j=i}^{n}[L\leq \sum_{k=i}^j a_k\leq R] \] 分析(树状数组) 考虑前缀和,改为是否有两个数的差在\([L\si ...

  5. OpenHarmony 4.0 Beta1发布,邀您体验

      初夏之际,OpenAtom OpenHarmony(简称"OpenHarmony") 4.0 Beta1版本如期而至.4.0 Beta1版本在3.2 Release版本基础上, ...

  6. 比nestjs更优雅的ioc:跨模块访问资源

    使用ts的最佳境界:化类型于无形 在项目中使用ts可以带来类型智能提示与校验的诸多好处.同时,为了减少类型标注,达到化类型于无形的效果,CabloyJS引入了ioc和依赖查找的机制.在上一篇文章中,我 ...

  7. CentOS6.5安装与配置JDK-7

    系统环境:centos-6.5 安装方式:rpm安装 软件:jdk-7-linux-i586.rpm 下载地址:http://www.oracle.com/technetwork/java/javas ...

  8. Linux系统中查找文件的方法

    -name 必须用到的选项.表明要求系统按照文件名查找. 一般格式:find /(dirname) -name filename 具体文件名查找法: 如果知道了某个文件的文件名,而不知道这个文件放到哪 ...

  9. c# mvc 移除多于的视图引擎

    前言 在我们的mvc中,我们又很多视图引擎是不需要的.为什么这么说呢? 我们知道计算机玩的就是遍历. 上图中我们可以看到,首先找的是index.aspx,因为我们都是cshtml,那么去映射的时候呢每 ...

  10. 安全同学讲Maven间接依赖场景的仲裁机制

    简介: 去年的Log4j-core的安全问题,再次把供应链安全推向了高潮.在供应链安全的场景,蚂蚁集团在静态代码扫描平台-STC和资产威胁透视平台-哈勃这2款产品在联合合作下,优势互补,很好的解决了直 ...