Demo Effect: http://houjinzhe.com/news/
- /*
- * Remove the classification Mark code
- */
- 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 = slug, $category;
- 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 the 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;
- }
Copy Code |