Intereting Posts
Установите короткое время автоматического выхода для одного пользователя Неправильная обработка дескриптора носителя Разрешить регистрацию только через социальное соединение Пользовательский поиск для отображения результатов на одной странице Список «n» количество сообщений из тега, каждый с другим классом или идентификатором Как фильтровать пользователей на странице пользователей с помощью настраиваемого мета-поля? Как удалить slug из иерархических пользовательских типов в 3.5.2 Удалить теги P из изображений Изменение имени папки темы нарушает виджетов Получить определенное количество слов из post_Content Woocommerce: дополнительное добавленное поле страны, не использующее ценность из базы данных Как добавить атрибуты rel = "nofollow" в виджеты RSS? нужен wp-конструктор или тема, реагирующая на соотношение сторон или ориентацию экрана Смешивание твитов с сообщениями Получение подкатегории

откуда этот $ post_id?

Я пытался выяснить, почему save_post не запускается «Быстрое редактирование», и нашел решение здесь. По- видимому, глобальная $post не доступна при обновлении сообщения в режиме быстрого редактирования.

Итак, теперь я работаю – см. Рабочий пример ниже, но я не понимаю, почему он работает.

 function mytestfunc($post_id) { $key = 'test'; $data = 'this is a test'; update_post_meta( $post_id, $key, $data ); } add_action( 'save_post', 'mytestfunc' ); 

Может кто-нибудь объяснить мне, откуда этот $post_id ? Я не mytestfunc значение в add_action – поэтому я не понимаю, почему mytestfunc знает, на какую должность я нацеливаюсь?

Это происходит из wp_insert_post() , где do_action() вызывается с двумя дополнительными параметрами:

 do_action('save_post', $post_ID, $post); 

Так что вы не добавляете параметры, это WordPress.

Если вы зарегистрируете обратный вызов с четвертым параметром, установленным на 2

 add_action( 'save_post', 'mytestfunc', 10, 2 ); 

… вы даже получите полный объект $post :

 function mytestfunc( $post_id, $post )