首页 > CMS建站 > Wordpress > 正文

WordPress如何去掉分类链接中category

2020-07-03 13:06:31
字体:
来源:转载
供稿:网友
这篇文章主要为大家详细介绍了WordPress如何去掉分类链接中category,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。

WordPress功能很强大,但是有些功能也确实让人不能接受,前面361源码介绍了《WordPress如何关闭缩略图自动裁剪功能》个人认为就是个非常糟糕的功能,下面要介绍的关于去掉分类链接中的category,其实网上有不少的办法是可以实现的,例如通过插件去掉,很方便,不过361源码不太喜欢安装太多插件,一是安装太多插件拖慢网站运行速度,二是插件太多,冲突可能增加多,一些未知的错误不知道什么时候就发生了。闲话收底,下面正式介绍:WordPress如何去掉分类链接中category

WordPress如何去掉分类链接中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 baseadd_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 rulesadd_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 variableadd_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 setadd_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;}

提醒一下,不管安装插件或者用代码可能会出现404页面,这是因为我们固定链接这里设置的“%post_id%.html”(或类似)的伪静态失效了!

终极解决方法:登录后台→设置→固定链接设置页面,随意改一下固定链接格式,然后再改回自己正常用的固定链接格式,可以解决这个bug,不行就反复多改几次。

如果还会出现404,最好把所有缓存清除后再尝试!如果自己搞不定,可以联系我们的在线客服帮你处理。

以上就是WordPress如何去掉分类链接中category的全部内容,希望对大家的学习和解决疑问有所帮助,也希望大家多多支持错新网。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表