WP_Post_Type::remove_rewrite_rules
Removes any rewrite rules, permastructs, and rules for the post type.
Method of the class: WP_Post_Type{}
No Hooks.
Returns
null. Nothing (null).
Usage
$WP_Post_Type = new WP_Post_Type(); $WP_Post_Type->remove_rewrite_rules();
Notes
- Global. WP_Rewrite.
$wp_rewriteWordPress rewrite component. - Global. WP.
$wpCurrent WordPress environment instance. - Global. Array.
$post_type_meta_capsUsed to remove meta capabilities.
Changelog
| Since 4.6.0 | Introduced. |
WP_Post_Type::remove_rewrite_rules() WP Post Type::remove rewrite rules code WP 6.9.1
public function remove_rewrite_rules() {
global $wp, $wp_rewrite, $post_type_meta_caps;
// Remove query var.
if ( false !== $this->query_var ) {
$wp->remove_query_var( $this->query_var );
}
// Remove any rewrite rules, permastructs, and rules.
if ( false !== $this->rewrite ) {
remove_rewrite_tag( "%$this->name%" );
remove_permastruct( $this->name );
foreach ( $wp_rewrite->extra_rules_top as $regex => $query ) {
if ( str_contains( $query, "index.php?post_type=$this->name" ) ) {
unset( $wp_rewrite->extra_rules_top[ $regex ] );
}
}
}
// Remove registered custom meta capabilities.
foreach ( $this->cap as $cap ) {
unset( $post_type_meta_caps[ $cap ] );
}
}