无法使用UPDATE_POST_META()函数保存日期时间自定义元字段

时间:2013-08-22 作者:Derfder

当我这样做时(在WP admin内的插件函数中):

$metaboxes = get_post_meta( $post_id );
echo "<pre>";
print_r($metaboxes);
echo "</pre>";
die();
我得到了我所有的元数据库信息except the datetime.

为什么会这样?它们存储在哪里?我如何访问它们?

我正在使用此插件http://www.deluxeblogtips.com/meta-box/ 要向我的内容类型添加自定义元字段,请执行以下操作:

array(
  \'name\'  => \'Date and time:\',
  \'type\'  => \'datetime\',
  \'id\'    => "rw_datetime",
),
我想保存datetime 字段如果其他字段具有特定值,请使用save_post 函数,但由于某些原因,这对datetime不起作用:

update_post_meta($post_id, \'rw_datetime\', \'2013-08-28 11:11\' );
但对于文本字段来说,类似这样的操作非常有效:

update_post_meta($post_id, \'rw_some_textfield\', \'This is working!\' );
为什么会这样?为什么它不适用于datetime,为什么它适用于其他字段类型?

如果我知道$post_id 然后使用更新此字段update_post_meta() 作用

UPDATE:

my save\\u post函数的代码:

add_action( \'save_post\', \'things_before_save\' ); 

function things_before_save( $post_id ) { 

    // No auto saves 
    if( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE ) return; 

    // make sure the current user can edit the post 
    if( ! current_user_can( \'edit_post\' ) ) return;

    // assure the post type
    if ( ! get_post_type($post_id) == \'cards\' ) return;

    // working
    update_post_meta($post_id, \'rw_some_textfield\', \'This is working!\' );

    // not working ;(
    update_post_meta($post_id, \'rw_datetime\', \'2013-08-28 11:11\' );

} 
请注意,我没有处理任何变量,只处理字符串This is working!2013-08-28 11:11 消除可能的错误。

所以,我想问题是rw\\u datetime存储在其他地方,而不是与其他元数据库存储在同一位置。

1 个回复
SO网友:iEmanuele

看来你用错了那个插件。没有必要钩住save_post 因为插件是为你做的。只需注册元框和字段。要检索值,请检查this

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在