ACF: MU-plugin для отладки acf/save_post (логирование ключей)
Логирует post_id и ключи из $_POST['acf'] при сохранении поста. Для диагностики: приходит ли форма с данными ACF в хук. По документации ACF acf/save_post.
Как использовать
- Создайте файл wp-content/mu-plugins/acf-save-debug.php (папку mu-plugins создайте при необходимости).
- Включите WP_DEBUG_LOG в wp-config.php, сохраните пост с ACF-полем и смотрите wp-content/debug.log.
Му-плагин вешает обработчик на acf/save_post с приоритетом 1 и пишет в error_log идентификатор поста и список ключей из $_POST['acf'] (с ACF 5.x данные приходят в $_POST['acf']). Если ключи пустые — форма не передаёт данные ACF; если ключи есть, а meta не сохраняется — конфликт хуков или перезапись ниже по цепочке.
Код
<?php
/**
* Plugin Name: ACF Save Debug (MU)
* Description: Логирует post_id и ключи $_POST['acf'] в acf/save_post.
*/
add_action('acf/save_post', function ($post_id) {
if (!is_admin()) {
return;
}
$keys = isset($_POST['acf']) && is_array($_POST['acf'])
? array_keys($_POST['acf'])
: [];
error_log(
'[ACF] acf/save_post post_id=' . $post_id . ' keys=' . implode(',', $keys)
);
}, 1);
Что смотреть в логе
- После сохранения поста в админке в
wp-content/debug.logдолжна появиться строка вида[ACF] acf/save_post post_id=123 keys=field_abc,field_def. - Пустой
keys— ACF не получает данные (не тот экран, кастомная форма безacf_form_head(), поле disabled или конфликт JS). - Ключи есть, но meta в БД не меняется — ищите другой код на
save_postилиacf/save_post, который перезаписывает meta.
Подробнее: WordPress: ACF поле не сохраняется — чиним запись meta.