2011-12-31 85 views
0

在wordpress中,我需要对其进行编程,以便任何时候有人输入或更新称为“start_date”的后期元,一小段代码在保存前输入的内容上运行。Wordpress过滤器添加meta?

我需要采取什么输入并将其转换为unix时间戳。

有没有办法做到这一点?

如果不是,有没有办法在发布或更新帖子时添加代码,以便它检查该元并根据需要更新它?

回答

0

假设您使用插件创建元框和自定义字段,可以执行以下操作。否则,这取决于他们如何保存数据,因为它可能会覆盖你的数据。

虽然取决于具体情况,但还是可以开始使用。

add_action('save_post', 'update_the_post_meta', 100, 2); 
function update_the_post_meta($post_id, $post) { 

    if (defined('DOING_AJAX') && DOING_AJAX) { return; } 
    if (defined('DOING_CRON') && DOING_CRON) { return; } 
    if ($post->post_type == 'revision') { return; } 

    if (isset($_REQUEST['start_date'])) : 
     //do your timestamp code here and save it in $timestamp 
     add_post_meta($post_id, 'start_date', $timestamp, true) or update_post_meta($post_id, 'start_date', $timestamp); 
    else : 
     delete_post_meta($post_id, 'start_date'); 
    endif; 

} 

现在add_action的优先级设置为100(数字越高,优先级越低)。所以,如果你想覆盖别人的功能,你可能需要增加优先级号码。另外,这是假设输入字段的名称是“start_date”。