如果你的是新站,可以考虑去掉这个category分类标志;如果你的是老站(也就是说搜索引擎已经收录了分类目录),个人建议不用折腾了;如果非要去掉,就一定要做一下分类链接目录的301重定向。
WordPress去掉链接category的两种办法:
方法一:插件法实现
WP No Category Base插件功能简单,作用就是去掉WordPress分类目录链接中category分类标志而已。我们可以直接后台安装,启用后也不需要任何设置就可以生效使用。
登录后台 > 插件 > 安装插件 > 搜索“WP No Category Base”,然后进行安装并启用即可。
方法二:纯代码实现
纯代码去掉WordPress分类目录链接中的category分类标志,也非常简单,只需要将以下代码放在主题文件functions.php文件最后一个?>前面即可。
第一步:打开“外观”下的“编辑”菜单;
第二部:在“主题文件”中找到“模板函数 (functions.php)”
第三部:在表中添加下面函数:
// 去掉链接中category分类标志 www.7760.cn
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] = 'tegory%';
} else {
$wp_rewrite -> extra_permastructs['category']['struct'] = 'tegory%';
}
}
// 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分类目录链接中的/category/的方法!
博主们在使用WordPress搭建的网站时,可能会发现文章的URL地址中默认都会带有Category,URL中带有Category可能既影响用户体验,也不利于SEO地址规范化,因此和大家分享一下去除URL中Category的方法。 首先登录到...
主要为大家介绍了WordPress修改评论默认头像的方法,可实现定制个性化的评论头像功能,非常具有实用价值,需要的朋友可以参考下
IIS6.0 下 Wordpress 去掉 index.php 和 category 的方法,需要的朋友可以参考下,下面又补充内容,大家多测试
wordpress自定义导航菜单操作使用方法
wordpress主题自定义导航菜单操作使用方法
1. 编写404.php 文件,上传保存到博客根目录(和wordpress 的 index.php 在同一个目录)。文件内容如下; 复制代码代码如下: <?php $qs = $_SERVER[‘QUERY_STRING’]; $pos = strrpos($qs, ‘://’); $pos = ...
10大wordpress百度SEO优化增加收录的方法.docx10大wordpress百度SEO优化增加收录的方法.docx10大wordpress百度SEO优化增加收录的方法.docx10大wordpress百度SEO优化增加收录的方法.docx10大wordpress百度SEO优化增加...
很多时候我们需要在给 WordPress 文章编辑器设置默认内容,比如把常用的开头或者文章注意事项放进去,本文就教你给 WordPress 编辑器设置默认内容。 /** *WordPress 给文章编辑器设置默认内容 *...
主要介绍了wordpress如何去掉自带的logo或者左侧栏的菜单方法,需要的朋友可以参考下
8个wordpress seo优化方法.本文档是基础教程。高手直接跳过
wordpress官方百度分享插件!压缩包中包含使用方法
CorePress是一款WordPress主题,适合个人网站,极客网站...新增默认开启文章目录:主题设置->文章设置->默认开启目录。设置以后,新建文章默认开启目录 环境要求 PHP版本5.6以上,并且开启了eval函数 推荐使用宝塔建站
本文档是WordPress主题制作的入门指导,详细分析了WordPress主题的每个文件,并对常用的函数使用参数做了详细的介绍。只要您具有基本的html及css知识,通过学习本文档就可以掌握WordPress主题的制作了 为了方便大家...
wordpress自动优化修复数据库方法
wordpress安装方法,这个方法本人亲身试过
主要为大家介绍了Wordpress实现自带的侧边栏和自定义的侧边栏同时存在的方法,是WordPress二次开发中非常实用的技巧,需要的朋友可以参考下
下载压缩包到本地,解压缩,双击解开的文件夹中的readme.html文件,即可查看WordPress的介绍、安装,和升级方法。在您将程序文件上传至服务器相应目录后,安装过程只需5分钟。 已经在使用WordPress英文版本的用户,...
WordPress是一个注重美学、易用性和网络标准的...WordPress的插件目录中现在有多于30,000个免费且开源的插件。WordPress 4.0通过加入新的条件、改善的搜索器和更可视化的浏览体验使找到符合您需要的插件变得更简单。