Kennt jemand eine Möglichkeit, benutzerdefinierte Beitragstypen abzumelden?
Gibt es ein Äquivalent zu register_post_type()
?
Kennt jemand eine Möglichkeit, benutzerdefinierte Beitragstypen abzumelden?
Gibt es ein Äquivalent zu register_post_type()
?
unregister_post_type
. Siehe Beitragstyp mit unregister_post_typeAntworten:
Derzeit gibt es keine Funktion zum Abmelden eines Beitragstyps, der Vorgang ist jedoch recht einfach.
Andrew Nacin hat einen Code für trac bereitgestellt, der hier zu finden und unten zu posten ist .
Das Aufheben der Registrierung eines eingebauten Beitragstyps hat unbekannte Auswirkungen auf WordPress. Bitte tun Sie dies auf Ihr eigenes Risiko. Das Aufheben der Registrierung eines benutzerdefinierten Post-Typs sollte absolut sicher sein, würde aber natürlich keine Bereinigung Ihrer Installation bewirken (dh das Aufheben der Registrierung eines Post-Typs entspricht nicht dem Entfernen von Daten aus der Datenbank).
Ich kann mir einige Szenarien vorstellen, in denen dies erforderlich sein könnte, aber der sinnvollere Ansatz (wenn möglich) wäre, den Post-Typ einfach erst gar nicht zu registrieren, wenn er nicht gewünscht wird.
quelle
register_post_type()
Laden (init
) nicht auf jeder Seite ausführen, sind wahrscheinlich die Permalink-Struktur (aktualisieren und es wird nicht mehr angezeigt) und die Posts in der Datenbank, die Sie entfernen können indem du tustDELETE FROM wp_posts WHERE post_type = '[your custom post type]'
.Ab Wordpress 4.5 ist Funktion , das zu tun,
unregister_post_type
. Beispiel:-quelle
unregister_post_type()
nichts aus der Datenbank gelöscht wird. Es wird nur verhindert, dass der Beitragstyp registriert wird.Das hat bei mir funktioniert, wie Rarst sagte, wenn möglich mit remove_action () .
quelle
Wie bereits erwähnt, ist es einfach, den Post-Typ aus der globalen Variablen zu entfernen.
Aber wenn Sie einen Nicht-Core-Post-Typ meinen, ist es besser, nach Code zu suchen, der ihn registriert und sich von ihm löst
remove_action()
(wenn es ein anständiger Code ist, sollte er eingehakt und nicht direkt ausgeführt werden).quelle
register_post_type()
ist keine Funktion, die sich gut zum Einhängen eignet. Die normale Art, einen Beitragstyp zu registrieren, besteht darin, die Funktion direkt in einer Funktion auszuführen, die mit init verknüpft ist. Das Entfernen dieser Aktion kann unerwünschte Auswirkungen haben, da häufig andere Funktionen mit dieser Funktion entfernt werden.Ab WordPress-Version 4.5 bieten sie eine Funktion zum Entfernen des Post-Typs (unregister_post_type). Beispiel
Es wird definitiv funktionieren.
quelle