您的位置:小众博客 > Wordpress > 正文

wordpress的默认分类链接中是带有/category/一个层级的,别的博客程序大多默认的分类链接都是带有category的,那么有些wordpress的博主想把分类链接中的category去掉,这个问题在zblog中很好解决,但在wordpress中似乎要用上点代码了,不然直接设置会出错的说。今天小众博客给wordpress的博友分享一下wordpress去掉分类链接中的category的方法。

加入该代码至主题文件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; 
}

代码整理自网络。

- END -

标签:wordpress教程 

业界动态
  • 重磅!谷歌或被迫出售 Chrome 浏览器,垄断之路走到尽头?
  • 苹果成为史上第一家市值突破3万亿美元的企业
  • 腾讯一则公告,很可能导致外卖CPS项目的寒冬来了
  • 互联网行业巅峰将过
  • 喜报式实时成交额不见了 今年双11电商巨头战报变冷静
  • Facebook正式更名为Meta
  • 阿里云上线正版图片库,永久版权
  • 库克:中国从未要求苹果公司解锁手机
  • 搜狗开了个小差儿
  • 权健实际控制人束某某等18人被刑拘
  • 网站运营
  • Js实现双击鼠标自动滚动页面效果
  • Nginx各种配置收集整理
  • 网站备案对收录到底有没有影响
  • 什么是Referer 设置防盗链时候指明和不指明空Referer的区别
  • 宝塔面板迁移系统盘/www到数据盘/data
  • 自适应网页设计代码需要做的6大调整
  • 站长们,不要忘了你的网站是要做什么的
  • 浅谈网站网页面价值所在
  • 2016年网络SEO外链指南
  • 网站优化太早并不是一定是好事
  • 年度热门
  • 同床共寝对健康和幸福的影响
  • 吃个饭被人拍进短视频,她起诉平台获赔1万元
  • 印度计划在2035年建成自己的空间站
  • 重磅!谷歌或被迫出售 Chrome 浏览器,垄断之路走到尽头?