WP_Post_Type::remove_rewrite_rules()

In this article

Removes any rewrite rules, permastructs, and rules for the post type.

Source

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 ] );
	}
}

Changelog

VersionDescription
4.6.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.