Откуда взялась переменная
По этой статье https://wp-kama.ru/id_740/blok-proizvolnyih-poley-v-adminke-wordpress-svoimi-rukami.html
Не могу понять, откуда берётся переменная $post_id с идентификатором поста в функции my_extra_fields_update её туда же никак не передают
// включаем обновление полей при сохранении add_action('save_post', 'my_extra_fields_update', 0); /* Сохраняем данные, при сохранении поста */ function my_extra_fields_update( $post_id ){ if ( ! wp_verify_nonce($_POST['extra_fields_nonce'], __FILE__) ) return false; // проверка if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return false; // выходим если это автосохранение if ( !current_user_can('edit_post', $post_id) ) return false; // выходим если юзер не имеет право редактировать запись if( !isset($_POST['extra']) ) return false; // выходим если данных нет // Все ОК! Теперь, нужно сохранить/удалить данные $_POST['extra'] = array_map('trim', $_POST['extra']); // чистим все данные от пробелов по краям foreach( $_POST['extra'] as $key=>$value ){ if( empty($value) ){ delete_post_meta($post_id, $key); // удаляем поле если значение пустое continue; } update_post_meta($post_id, $key, $value); // add_post_meta() работает автоматически } return $post_id; }
lifestar правильно подсказал. В момент срабатывания хука save_post
в вызываемую функцию передается как минимум ID поста. Не пойму только, зачем это было выносить отдельным вопрос, ведь можно было в комментариях самой статьи спросить.
Вот же...