Mục Lục
Các bạn sử dụng theme wordpress chung và các bạn hay dùng theme flatsome của wordpress nói riêng. Thì hay gặp tình trạng vẫn còn url của profolio rất khó chịu thì hôm nay Quy Nhơn 30s sẽ hướng dẫn các bạn xóa bỏ đi các slug ấy với các đoạn code nhỏ.
Đoạn code bỏ Feature_item trong Slug Porfolio:
function ah_remove_custom_post_type_slug( $post_link, $post, $leavename ) { if ( ! in_array( $post->post_type, array( 'featured_item' ) ) || 'publish' != $post->post_status ) return $post_link; $post_link = str_replace( '/' . $post->post_type . '/', '/', $post_link ); return $post_link; } add_filter( 'post_type_link', 'ah_remove_custom_post_type_slug', 10, 3 ); function ah_parse_request_tricksy( $query ) { if ( ! $query->is_main_query() ) return; if ( 2 != count( $query->query ) || ! isset( $query->query['page'] ) ) return; if ( ! empty( $query->query['name'] ) ) $query->set( 'post_type', array( 'post', 'featured_item', 'page' ) ); } add_action( 'pre_get_posts', 'ah_parse_request_tricksy' );
Đoạn code bỏ Feature_item_category trong slug danh mục Portfolio:
add_filter('request', 'rudr_change_term_request', 1, 1 ); function rudr_change_term_request($query){ $tax_name = 'featured_item_category'; // specify you taxonomy name here, it can be also 'category' or 'post_tag' // Request for child terms differs, we should make an additional check if( $query['attachment'] ) : $include_children = true; $name = $query['attachment']; else: $include_children = false; $name = $query['name']; endif; $term = get_term_by('slug', $name, $tax_name); // get the current term to make sure it exists if (isset($name) && $term && !is_wp_error($term)): // check it here if( $include_children ) { unset($query['attachment']); $parent = $term->parent; while( $parent ) { $parent_term = get_term( $parent, $tax_name); $name = $parent_term->slug . '/' . $name; $parent = $parent_term->parent; } } else { unset($query['name']); } switch( $tax_name ): case 'category':{ $query['category_name'] = $name; // for categories break; } case 'post_tag':{ $query['tag'] = $name; // for post tags break; } default:{ $query[$tax_name] = $name; // for another taxonomies break; } endswitch; endif; return $query; } add_filter( 'term_link', 'rudr_term_permalink', 10, 3 ); function rudr_term_permalink( $url, $term, $taxonomy ){ $taxonomy_name = 'featured_item_category'; // your taxonomy name here $taxonomy_slug = 'featured_item_category'; // the taxonomy slug can be different with the taxonomy name (like 'post_tag' and 'tag' ) // exit the function if taxonomy slug is not in URL if ( strpos($url, $taxonomy_slug) === FALSE || $taxonomy != $taxonomy_name ) return $url; $url = str_replace('/' . $taxonomy_slug, '', $url); return $url; }