建站技术网专注分享网站建设技术,网站建设教程,真正帮你学会做网站技术,轻松解决网站建设过程中遇到的常见问题,为广大站长服务。 网站地图 | 收藏本站 | 订阅
域名投资,就来找米网,认准网址:www.zhaomi.cc 专业仿站,就到仿站网:www.fangzhan.org
  站内公告: ·帝国cms教程内容已更新,欢迎关注     ·建站技术网采用阿里云服务器,备案已通    
您当前的位置:建站技术网 > cms教程 > Wordpress教程

如何去掉WordPress分类目录url链接中的category,如何处理生成的作者链接

时间:2019-10-25 16:45:22  来源:网络收集  整理: 建站技术网 www.jzjsw.com     点击:0次

关于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作者的相关函数调用代码


  1 显示文章的作者

  2. 显示文章作者的描述(作者个人资料中的描述)

  3. 显示文章作者的登录名

  4. 显示文章作者的firstname(名)

  5. 显示文章作者的lastname(姓)

  6. 显示文章作者的昵称

  7. 显示文章作者的ID号

  8. 显示文章作者的电子邮箱

  9. 显示文章作者的网站地址

  10.(添加于2.1版本) 显示一个以文章作者名为链接名,链接地址为文章作者的网址的链接。

  11. (不推荐使用) 显示文章作者的icq

  12. 显示文章作者的aim

  13. 显示文章作者的yim

  14. (不推荐使用) 显示文章作者的msn

  15. 显示文章作者已发表文章的篇数

  16. 显示一个链接到文章作者已发表文章列表的链接

  17. (不推荐使用) 显示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

  查找‘%3s′,只需加个nofollow标签,例如:′<ahref="s< a="">′,只需加个nofollow标签,例如:′s"rel="nofollow">s'

  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) {

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链接  categor  链接
文章标题:如何去掉WordPress分类目录url链接中的category,如何处理生成的作者链接
文章网址:http://www.jzjsw.com/cmsJiaocheng/Wordpress/11517.html
上一篇:wordpress 迁移后,上传文件失败的问题解决
下一篇:WordPress 无法上传文件的解决办法
来顶一下
返回首页
返回首页
相关文章
推荐资讯
我是如何通过开源项目月入 10 万的?
我是如何通过开源项目
如何通过SEO优化排名赚钱?SEO赚钱方法
如何通过SEO优化排名赚
seo优化教程:网站seo内容优化
seo优化教程:网站seo
SEO细节:企业SEO如何快速为新站做出效果
SEO细节:企业SEO如何
最新文章
栏目更新
栏目热门