douzen1896 2018-10-17 20:52
浏览 49
已采纳

Wordpress添加,更新和获取Post Meta无法正常工作

The below code is added into a page template file, when someone loads the page it will add the post meta if it didn't exist, it will update the post meta if it did exist. When I get the post meta and then return it, the outcome is "Array".

It leads me to believe the post meta is not being made or the get isn't working.

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条回答 默认 最新

  • duankuaizhe8257 2018-10-17 20:58
    关注

    Try This:

    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;
    

    Note: Use a 3'rd param in get_post_meta() function, which will return a single value

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

    See get_post_meta() function for more details.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?