当前位置:首页 » 山东网站优化 » 正文

如何去掉wordpress分类中category

1749 人参与  2017年01月24日 09:45  分类 : 山东网站优化  评论

 

    第一个方法在wordpress后台的设置-固定链接-分类目录前缀的文本框中加入半角字符: “.”,保存即可去掉分类category字符。这种方法非常的简单,但是有一个缺陷就是之前的URL无法301跳转,会导致重复的URL,所以这个方法时候博客网站建立初期尚未被搜索引擎抓取的阶段,如果已经抓取了又想用这种方法那就得自己配置301进行永久性跳转了。


如何去掉wordpress分类中category2016041101311873.jpg


    第二种方法采用插件去除分类字符category。使用方法也很简单,在wordpress后台-插件-安装插件中搜索插件WP No Category Base,点击现在安装,然后点击启动,category就会自动消失了。这种方法时候任何时候的博客网站,之前的URL也会自动301跳转。唯一不足就是wordpress后台又增加了一个插件了,那么就又降低了wordpress的性能了,插件多了会影响网站的整体速度,如果是一两个插件是没问题的。


    第三种方法是直接修改代码。在wordpress后台,外观-编辑,找到主题文件functions.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的性能影响较小可以忽略不计,同时wordpress升级也不会影响到,但是如果是换主题就会有影响,不过只要按照这个方法再来一次即可。


来源:山东seo 作者:山东网站优化(微信/QQ号:9710917),转载请保留出处和链接!

本文链接:http://365youhua.com/20170130.html

本文标签:wordpress  

<< 上一篇 下一篇 >>

搜索

最近发表

标签列表

合作伙伴

陕西SEO  神木SEO  临沂SEO  怀化SEO  青州SEO  朔州SEO  齐齐哈尔SEO  汝州SEO  苍南SEO  无为SEO  菏泽SEO  敦煌SEO  鹤岗SEO  衡水SEO  黑帽SEO  
曲靖网站优化  邵东网站优化  樟树网站优化  栖霞网站优化  郑州网站优化  平阳网站优化  齐河网站优化  海口网站优化  武夷山网站优化  平阳网站优化  朔州网站优化  
Copyright 山东365优化.All Rights Reserved.提供山东seo,山东网站优化,关注山东seo网站优化排名,分享山东百度优化,山东google优化,山东网站seo教程.
山东seo服务地区:济南、泰安、潍坊、德州、滨州、莱芜、青岛、烟台、日照、东营、济宁、荷泽、聊城、临沂、枣庄、淄博、威海
鲁ICP备16031566号-11 鲁公网安备 37021002000175号 seo优化