Intereting Posts

Переменная $ post. Получил ли я понимание того, как обрабатываются действия Backend?

Я искал способ привязать пользовательский мета-ящик к экрану редактирования страницы по определенному шаблону.

Я нашел и попробовал это здесь, и с моей фактической точки зрения это не может работать так. Позвольте мне объяснить, почему я так думаю: Чтобы определить, нахожусь ли я на экране с использованием конкретного шаблона, мне нужна ссылка на глобальную почту $. Но так как эта функция для создания мета-окна подключается к admin_init, глобальная почта $ еще не существует.

Поэтому он должен выпустить сообщение об ошибке, не так ли? После этих мыслей я попытался связать свою функцию meta_box_init с edit_post, save_post и т. Д. Но в кодексе говорится, что даже им нужно установить $ post. Итак, как я могу получить конкретный мета-код шаблона страницы? Есть ли чистое решение?

Solutions Collecting From Web of "Переменная $ post. Получил ли я понимание того, как обрабатываются действия Backend?"

Как я уже писал в комментариях, в начале создания новой публикации или страницы сначала выберите шаблон и сохраните его как черновик. Мета-окно появится после сохранения, если используется правильный шаблон.

 <?php add_action( 'add_meta_boxes', 'my_add_meta_box' ); function my_add_meta_box() { // get template file name $template_basename = wp_basename( get_page_template() ); // check if right template is used if('my-template.php' == $template_basename) { add_meta_box( 'my_metabox', __('Metabox name'), 'my_display_metabox', 'page', 'normal', 'high' ); } } function my_display_metabox($post) { wp_nonce_field( 'my_metabox', 'my_metabox_noncename' ); // meta box HTML here }