个性化的WordPress原创主题

WordPress文章企业网站主题模板
WordPress主题建站 > WordPress教程 > WordPress去除url链接category目录的方法

WordPress去除url链接category目录的方法

责任编辑:初春 更新时间: 关注:344

WordPress去除category的方法,默认情况下WordPress会为链接添加一层category的分类,相当于网站的URL层次变得越来越深,影响网站SEO。

网上也有介绍通过设置固定链接->分类前缀的方式,来解决这个问题;从我个人认为不建议这种方式,虽然点击之后的链接是移动了category,可是我们查看源代码是能够看见,在URL中会多出一层。

  1. https://e.69525.com/./e

下面协典筒为您介绍使用代码的方式来去除category的两种方式:

1直接修改源代码:

  1. //修改 wp-includes -> taxonomy.php文件,约第[4547]行
  2. $termlink = apply_filters( 'category_link', $termlink, $term->term_id );
  3. //在这行下面新增一行
  4. $termlink = str_replace("/category","",$termlink);

保存文件,我们刷新页面再看,网站链接的/category就没有了。

2通过代码方式去除url链接category目录:

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

将以上代码放置在网站主题根目录下的[functions.php]文件,并保存文件。刷新网页,您会发现网页中category已被去除成功。

WordPress从根本去除URL中category方法

以上便是协典筒为您分享去除category的几种方式,希望能帮助到您。

  • 获赞15
  • 声明:内容版权归原作者所有,未经授权不得任意转载
  • 本文标题和链接:
    WordPress去除url链接category目录的方法
    https://e.69525.com/g/73d74cd419183448/

相关阅读

Copyright © 2023 WordPress主题. All rights reserved.Powered by e.69525.com.

本站基于WordPress主题搭建,正在以新的版本流畅运行;由69525提供主题免费升级支持