AT互联|WordPress优化之去掉分类链接中的category_
AT互联|WordPress优化之去掉分类链接中的category_手机扫码预览

AT互联|WordPress优化之去掉分类链接中的category_

376
免费 优惠信息:免费 暂无永久SVIP下载特权
  • 免费售前咨询
  • 登录下载更划算哦
  • 付费安装资源
  • 付费终身升级
  • QQ保障售后服务
  • 网站应急咨询顾问

在网站SEO优化中url优化是相对来说比较重要的环节,wordpress分类的链接地址在wordpress程序中会自带category目录,例如:https://www.zhankr.net/category/learn。

如果能够去掉分类链接中的category无疑也是网站seo优化的一种手法。

下面分享一段去掉分类链接中的category的wordpress代码

使用方法

复制下面代码粘贴到functions.php文件里即可

//去掉分类链接中的category
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;
}

代码很长,也不用看懂,直接将上面代码添加到主题functions.php文件就行

文章来自AT互联https://www.at8848.cn转载请注明出处,并保留本链接,谢谢!

打破行业潜规则-更多选择 更低价格 更快交付!
AT互联全栈开发服务商 » AT互联|WordPress优化之去掉分类链接中的category_
欢迎您光顾,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡