Есть ли явный хук действия, который срабатывает, когда (или непосредственно перед) страница редактирования администратора отображается для пользовательского типа сообщения? Что-то похожее на {$new_status}_{$post->post_type}?
Я пытаюсь найти наименее навязчивое место для вставки моей регистрации add_meta_box(), чтобы она не вызывала эту функцию при каждом обновлении страницы, а только тогда, когда это необходимо (например: пользователь хочет создать новый пользовательский пост или отредактировать существующий заказной пост).
Спасибо за ваши мысли / фрагменты кода!
register_post_type()
имеет опцию регистрации под названием'register_meta_box_cb'
. Установите для этого допустимый обратный вызов, и он будет вызывать эту функцию только при компиляции мета-полей для экрана редактирования этого типа сообщения. Что-то вроде этого:Чертовски выдающийся! Я пропустил это. Ваш ответ точно соответствует моим требованиям! Но, возвращаясь к моему первоначальному вопросу, есть ли способ подключиться, когда вызывается страница редактирования? Я даже пробовал edit_post, и это, похоже, не срабатывало ни при каких обстоятельствах (даже для сообщений!)
Попробуйте ‘admin_head-edit.php’, если вы хотите, чтобы ваш код срабатывал на самой странице edit.php. ‘save_post’ и ‘edit_post’ срабатывают при сохранении изменений (включая автоматические черновики) в сообщении.
Метод, опубликованный Джоном, является правильным способом добавления метабоксов к определенному типу сообщений, помимо этого метода, альтернативой является регистрация метабоксов в действии
add_meta_boxes
илиadd_meta_boxes-$type
(эти действия существуют специально для регистрации метабоксов).