前言

因为一位朋友在群里询问我如何纯代码去除分类category,他说他在百度上搜了很多,发现上传后都出错。虽然不知道他什么原因出错。不过既然有朋友需要,那么我就分享出来我的解决方案吧。代码来自互联网,出自哪儿不清楚。

代码

你要做的其实很简单,仅仅只需将代码放进主题的functions.php文件中即可,代码就在下方。

//去除分类标志代码<br />
add_action( 'load-themes.php',  'no_category_base_refresh_rules');<br />
add_action('created_category', 'no_category_base_refresh_rules');<br />
add_action('edited_category', 'no_category_base_refresh_rules');<br />
add_action('delete_category', 'no_category_base_refresh_rules');<br />
function no_category_base_refresh_rules() {<br />
	global $wp_rewrite;<br />
	$wp_rewrite -&gt; flush_rules();<br />
}</p>
<p>// register_deactivation_hook(__FILE__, 'no_category_base_deactivate');<br />
// function no_category_base_deactivate() {<br />
// 	remove_filter('category_rewrite_rules', 'no_category_base_rewrite_rules');<br />
// 	// We don't want to insert our custom rules again<br />
// 	no_category_base_refresh_rules();<br />
// }</p>
<p>// Remove category base<br />
add_action('init', 'no_category_base_permastruct');<br />
function no_category_base_permastruct() {<br />
	global $wp_rewrite, $wp_version;<br />
	if (version_compare($wp_version, '3.4', '&lt;')) {<br />
		// For pre-3.4 support<br />
		$wp_rewrite -&gt; extra_permastructs['category'][0] = '%category%';<br />
	} else {<br />
		$wp_rewrite -&gt; extra_permastructs['category']['struct'] = '%category%';<br />
	}<br />
}</p>
<p>// Add our custom category rewrite rules<br />
add_filter('category_rewrite_rules', 'no_category_base_rewrite_rules');<br />
function no_category_base_rewrite_rules($category_rewrite) {<br />
	//var_dump($category_rewrite); // For Debugging</p>
<p>	$category_rewrite = array();<br />
	$categories = get_categories(array('hide_empty' =&gt; false));<br />
	foreach ($categories as $category) {<br />
		$category_nicename = $category -&gt; slug;<br />
		if ($category -&gt; parent == $category -&gt; cat_ID)// recursive recursion<br />
			$category -&gt; parent = 0;<br />
		elseif ($category -&gt; parent != 0)<br />
			$category_nicename = get_category_parents($category -&gt; parent, false, '/', true) . $category_nicename;<br />
		$category_rewrite['(' . $category_nicename . ')/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$'] = 'index.php?category_name=$matches[1]&amp;feed=$matches[2]';<br />
		$category_rewrite['(' . $category_nicename . ')/page/?([0-9]{1,})/?$'] = 'index.php?category_name=$matches[1]&amp;paged=$matches[2]';<br />
		$category_rewrite['(' . $category_nicename . ')/?$'] = 'index.php?category_name=$matches[1]';<br />
	}<br />
	// Redirect support from Old Category Base<br />
	global $wp_rewrite;<br />
	$old_category_base = get_option('category_base') ? get_option('category_base') : 'category';<br />
	$old_category_base = trim($old_category_base, '/');<br />
	$category_rewrite[$old_category_base . '/(.*)$'] = 'index.php?category_redirect=$matches[1]';</p>
<p>	//var_dump($category_rewrite); // For Debugging<br />
	return $category_rewrite;<br />
}</p>
<p>// Add 'category_redirect' query variable<br />
add_filter('query_vars', 'no_category_base_query_vars');<br />
function no_category_base_query_vars($public_query_vars) {<br />
	$public_query_vars[] = 'category_redirect';<br />
	return $public_query_vars;<br />
}</p>
<p>// Redirect if 'category_redirect' is set<br />
add_filter('request', 'no_category_base_request');<br />
function no_category_base_request($query_vars) {<br />
	//print_r($query_vars); // For Debugging<br />
	if (isset($query_vars['category_redirect'])) {<br />
		$catlink = trailingslashit(get_option('home')) . user_trailingslashit($query_vars['category_redirect'], 'category');<br />
		status_header(301);<br />
		header("Location: $catlink");<br />
		exit();<br />
	}<br />
	return $query_vars;<br />
}

最后

上传代码后,请记得将固定链接更新下,然后就成功了。其实很简单,多动动手,百度或者谷歌之类,其实很容易找到你想要的答案!