Ich versuche etwas mit einem admin_init-Hook zu tun, wenn - und nur wenn - der Benutzer einen Beitrag (post.php) mit dem Beitragstyp "event" bearbeitet. Mein Problem ist das, obwohl WordPress auf eine globale Variable verweist, die $ post_type aufruft. wenn ich mache:
global $post_type;
var_dump($post_type);
Es gibt NULL zurück.
aber wenn ich das mache:
global $pagenow;
var_dump($pagenow);
Es gibt meine aktuelle Seite zurück. dh "post.php".
Ich habe mir diese Funktion angesehen, $screen = get_current_screen();
aber das wird erst deklariert, nachdem die Hooks admin_init ausgeführt wurden, und dann ist es zu spät.
Meine Frage ist also, wie ich zum Zeitpunkt der Ausführung von admin_init herausfinden kann, welcher Beitragstyp der aktuell bearbeitete Beitrag ist. Wenn die URL post.php?post=81&action=edit
dann lautet , woher weiß ich, welcher Post-Typ postid = 81 ist?
Danke Malthe
global $post
?Antworten:
quelle
Ich werde die Antwort von MiCc83 erweitern. Es gibt einige Dinge, die nicht den ursprünglichen Fragen des OP entsprechen, aber insgesamt ist es eine großartige Lösung. Zum Beispiel würde es mit einem post_type-Ereignis nicht funktionieren, da Sie den post_type in der Antwort als 'post' überprüfen.
Die Bedingung
'post' === get_post_type( $_GET['post'] )
in der vorherigen Antwort würde verhindern, dass dies an einem Beitragstyp 'Ereignis' funktioniert. Sie müssten nach dem Post-Typ 'event' anstelle von 'post' suchen.quelle