Откуда взялась переменная
По этой статье 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 поста. Не пойму только, зачем это было выносить отдельным вопрос, ведь можно было в комментариях самой статьи спросить.
Вот же...