Próbuję zrobić coś z hakiem admin_init, jeśli - i tylko jeśli - użytkownik edytuje post (post.php) z wpisem typu „event”. Mój problem polega na tym, że chociaż wordpress wskazuje na zmienną globalną o nazwie $ post_type. Jeśli zrobię:
global $post_type;
var_dump($post_type);
Zwraca NULL.
ale jeśli to zrobię:
global $pagenow;
var_dump($pagenow);
zwraca moją bieżącą stronę. tzn. „post.php”.
$screen = get_current_screen();
Zajrzałem do tej funkcji, ale ta deklarowana jest dopiero po uruchomieniu hooków admin_init, a potem do późna.
Więc moje pytanie brzmi: jak mogę, zanim admin_init zostanie uruchomiony, dowiedzieć się, jaki typ posta jest aktualnie edytowany. jeśli jest post.php?post=81&action=edit
to adres URL , skąd mam wiedzieć, jaki jest typ posta postid = 81?
Dzięki Malthe
global $post
?Odpowiedzi:
źródło
Mam zamiar rozwinąć odpowiedź MiCc83. Jest kilka rzeczy, które nie odpowiadają oryginalnym pytaniom OP, ale ogólnie jest to świetne rozwiązanie. Na przykład nie działałoby ze zdarzeniem post_type, ponieważ sprawdzasz typ post_type jako „post” w odpowiedzi.
Warunek
'post' === get_post_type( $_GET['post'] )
z poprzedniej odpowiedzi uniemożliwiłby temu działanie w przypadku „zdarzenia” typu postu. Konieczne będzie sprawdzenie typu „zdarzenie” typu „post” zamiast „post”.źródło