Согласно моим журналам, все работает гладко, даже функция возвращает true, но значение не меняется должным образом .
Вот мой код:
Код: Выделить всё
function update_on_save($post_id) {
error_log("fonction post_id :".$post_id);
// Enregistrement automatique = on sort
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return;
}
if ($post_id && get_post_type($post_id) == 'post') {
if(in_category('Orquera Listings',$post_id)) {
$status = get_post_meta($post_id,'status', true);
error_log("status :".$status);
switch ($status) {
case 'Pending':
$order = 1;
break;
case 'For Sale':
$order = 2;
break;
case 'Sold':
$order = 3;
break;
default:
$order = 4;
}
error_log("order : ".$order);
$result = update_post_meta($post_id, 'order', $order);
error_log('result :'.$result);
}
}
}
add_action('save_post', 'update_on_save', 90,1);
- функция post_id:47377
- статус :Продано
- заказ: 3
- результат: 1
Что я делаю неправильно?
Я пробовал много чего, даже пробовал использовать wp_after_insert_post, но до сих пор мое поле «порядок» не сдвинулось ни на дюйм.
Добавление параметров: $result = update_post_meta($post_id, ' order', $order,$old_order);
Изменение приоритета...
Изменить:
Я попробовал это:
$wpdb->update($wpdb->prefix.'postmeta', array('meta_value' => $order), array('post_id' => $post_id,'meta_key' => 'order'));
$order_db = get_post_meta($post_id,'order', true);
error_log('order_db :'.$order_db);
Показывает 3 по порядку. Я чувствую, что значение снова сохраняется, когда я обновляю форму. Поле «порядок» можно редактировать, но я хочу принудительно указать значение.
Для ясности: я сохраняю сообщение и помещаю 30 в поле порядка, чтобы проверить его. Но это значение будет переопределено моим фрагментом благодаря save_post. Я чувствую, что он обновлен, но значение, которое я ввел в поле в BO, переопределяет его и после этого сохраняет его снова.
Подробнее здесь: https://stackoverflow.com/questions/783 ... -post-hook
Мобильная версия