Wordpress Добавить, обновить и получить сообщение мета не работает

Приведенный ниже код добавляется в файл шаблона страницы. Когда кто-то загружает страницу, он добавляет метаданные поста, если они не существуют, обновляет метаданные поста, если он существует. Когда я получаю мета-пост, а затем возвращаю его, получается "Массив".

Это заставляет меня верить, что мета-пост не создается или не работает.

global $post;
if ( ! add_post_meta( $post->ID, 'offer_voucher_evergreen_deadline', '2018-11-16 13:00:00')) { 
    update_post_meta($post->ID, 'offer_voucher_evergreen_deadline', '2018-11-16 13:00:00');
}

$test = get_post_meta($post->ID, 'offer_voucher_evergreen_deadline', true);
echo $test;

1 ответ

Решение

Попробуй это:

global $post;
$meta_value = get_post_meta($post->ID, 'offer_voucher_evergreen_deadline', true);
if( !empty($meta_value) ) {
   update_post_meta($post->ID, 'offer_voucher_evergreen_deadline', '2018-11-16 13:00:00');
}else {
   add_post_meta( $post->ID, 'offer_voucher_evergreen_deadline', '2018-11-16 13:00:00')
}

$test = get_post_meta($post->ID, 'offer_voucher_evergreen_deadline', true);
echo $test; //return $test;

Примечание: используйте 3-й параметр в get_post_meta() функция, которая будет возвращать одно значение

$test = get_post_meta($post->ID, 'offer_voucher_evergreen_deadline', true);
echo $test; //return $test;

Смотрите функцию get_post_meta() для более подробной информации.

Другие вопросы по тегам