`
xxbb77
  • 浏览: 4978 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

WordPress去除默认自带目录category的方法

 
阅读更多
如果你的是新站,可以考虑去掉这个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分类链接中的"/category/"主要是通过调整永久链接设置或使用插件实现的。这种方法可以让你的网站URL看起来更简洁,提高用户体验。不过,务必谨慎操作,遵循最佳实践,以保持网站的稳定性和...

    wordpress去除分类URL的category

    博主们在使用WordPress搭建的网站时,可能会发现文章的URL地址中默认都会带有Category,URL中带有Category可能既影响用户体验,也不利于SEO地址规范化,因此和大家分享一下去除URL中Category的方法。 首先登录到...

    WordPress修改评论默认头像的方法

    以上就是如何在WordPress中修改评论默认头像的方法。通过这种方法,网站管理员可以为评论者提供更具个性化的头像,从而提升网站的整体质感和用户体验。这种方法虽然简单,但具有很高的实用价值,能够帮助网站管理者...

    IIS6.0下Wordpress 去掉 index.php 和 category 的方法小结

    【IIS6.0下Wordpress 去掉 index.php 和 category 的方法】 在IIS6.0上运行WordPress时,有时我们希望去除URL中的`index.php`和`category`部分,以获得更美观和友好的网址。以下是两种主要方法: ### 一、去除 ...

    8个wordpress seo优化方法

    以下八个方法将帮助你提升你的WordPress站点的SEO性能: 1. **优化文章URL链接结构**:在Permalink设置中选择包含`postname`的结构,如`/%year%/%monthnum%/%postname%.html`。这样做的好处是链接简洁,层级少,...

    wordpress主题自定义导航菜单操作使用方法

    "WordPress主题自定义导航菜单操作使用方法" WordPress主题自定义导航菜单操作使用方法是 WordPress 3.0 新增的功能之一,该功能使得我们可以更加容易地对网站菜单进行可视化操作。通过本教程,我们将详细地介绍 ...

    WordPress不同分类使用不同的文章模板的方法

    WordPress 不同分类使用不同的文章模板方法 在 WordPress 中,使用不同的文章模板对于不同的分类是非常有必要的,这可以让我们的网站更加丰富多样化。本文将介绍两种方法来实现 WordPress 不同分类使用不同的文章...

    WordPress站点实现分类目录订阅功能实例

    特别是对于使用WordPress平台的网站,能够提供分类目录的订阅功能可以帮助用户及时获取特定领域的最新内容。WordPress是一个功能强大的内容管理系统(CMS),其内建有RSS(Really Simple Syndication,简易信息聚合...

    WordPress主题雪人Yeti1.9.2

    《WordPress主题雪人Yeti1.9.2详解》 WordPress作为全球最受欢迎的开源内容管理系统,拥有丰富的主题库,其中“雪人Yeti”是一款备受用户喜爱的主题之一。本文将详细解析Yeti 1.9.2版本,帮助你更好地理解和运用这...

    IIS6.0下WordPress 去掉 index.php 和 category 的方法小结

    1. 编写404.php 文件,上传保存到博客根目录(和wordpress 的 index.php 在同一个目录)。文件内容如下; 复制代码代码如下: &lt;?php $qs = $_SERVER[‘QUERY_STRING’]; $pos = strrpos($qs, ‘://’); $pos = ...

    Wordpress实现自带的侧边栏和自定义的侧边栏同时存在的方法

    在进行Wordpress二次开发的过程中,有时候我们会希望在同一个页面或网站上实现Wordpress自带的侧边栏和自定义的侧边栏同时存在。这在某些情况下是很有用的,比如当我们既想要保留主题自带的一些功能,同时又想要添加...

    全能主机运行Wordpress实现伪静态和中文URL的方法

    WordPress默认并不支持中文URL,因为很多服务器环境不处理中文字符。通过编程手段,我们可以让WordPress识别并处理中文URL。 步骤一:创建`cnurl.php`文件。这段代码的主要作用是检测服务器环境,根据不同的服务器...

    腾讯云Serverless升级Wordpress方法

    腾讯云Serverless提供了便捷的计算服务,但默认的WordPress安装可能不包含最新的版本,因此为了保持网站的安全性和功能完整性,适时进行版本更新至关重要。 一、了解Serverless与WordPress结合的优势 1. 弹性伸缩:...

    wordpress去掉自带的logo或者左侧栏的菜单方法

    在WordPress中,自定义网站界面是常见的需求,其中包括去除默认的logo和左侧栏菜单,以实现更加个性化的布局。本文将详细介绍如何通过编辑代码来实现这一目标。 首先,要删除WordPress后台顶部工具栏(也称为Admin ...

    WordPress B2主题手机端m默认展开下载权限教程

    WordPress B2主题手机端m默认展开下载权限教程 WordPress B2主题手机端m默认展开下载权限教程是指在WordPress网站中使用B2主题时,如何在手机端默认展开下载权限的设置教程。下面是相关知识点的详细解释: 1. B2...

    WordPress 不同分类目录调用不同模板的方法

    用wordpress做站特别是企业站的时候,多个分类的内容不同需要显示的页面也不一样,比如有些分类显示的是产品缩略图,有些显示的是公司新闻公告等,此时需要不同的分类模板,虽然wordpress默认只有一个通用的分类模板...

    wordpress自动优化修复数据库方法

    ### WordPress自动优化修复数据库方法详解 #### 一、引言 在使用WordPress的过程中,随着网站内容的不断增加,数据库中会积累大量的无用数据,比如文章草稿、废弃的修订版本等,这些数据不仅占用存储空间,还会...

    WordPress 网站系统源码包 6.4.2

    - 新用户可以下载WordPress-6.4.2压缩包,解压后上传到服务器的根目录,然后通过Web浏览器完成安装过程。 - 已有WordPress网站的用户可以通过后台"更新"功能轻松升级到6.4.2,或手动下载新版本覆盖现有文件。 4. ...

    在WordPress的文章编辑器中设置默认内容的方法

    很多时候我们需要在给 WordPress 文章编辑器设置默认内容,比如把常用的开头或者文章注意事项放进去,本文就教你给 WordPress 编辑器设置默认内容。 /** *WordPress 给文章编辑器设置默认内容 *...

Global site tag (gtag.js) - Google Analytics