Ändern Sie die Eigenschaften eines benutzerdefinierten Post-Typs nach der Registrierung?

Der spezielle Anwendungsfall ist, dass ich ein CPT über ein Plugin hinzugefügt habe, und ich möchte, dass es hierarchisch ist, aber die Post-Typ-Optionen sind fest in das Plugin geschrieben.

Ist es möglich, die Eigenschaften eines benutzerdefinierten Post-Typs zu ändern, nachdem dieser über register_post_type hinzugefügt wurde?

Solutions Collecting From Web of "Ändern Sie die Eigenschaften eines benutzerdefinierten Post-Typs nach der Registrierung?"

Während es möglich ist, CPT-Daten nach der Registrierung zu manipulieren, ist es für einige Dinge nicht sehr “sauber” und härter.

Speziell für die hierarchische Einstellung fügt die Registrierung sie zum sofortigen Umschreiben hinzu:

 if ( $args->hierarchical ) add_rewrite_tag( "%$post_type%", '(.+?)', $args->query_var ? "{$args->query_var}=" : "post_type=$post_type&pagename=" ); else add_rewrite_tag( "%$post_type%", '([^/]+)', $args->query_var ? "{$args->query_var}=" : "post_type=$post_type&name=" ); 

Sie müssen dies also wirklich sorgfältig wiederholen und sicherstellen, dass die Regeln für das Überschreiben von Überläufen korrekt überlebt werden.

Alles in allem wäre es robuster, in den fraglichen Teil des Plugins nachzuspüren oder zu erweitern und CPT einfach so zu registrieren, wie Sie es brauchen.