Wordpress过滤器添加元?

时间:2011-12-31 03:36:52

标签: wordpress wordpress-plugin

在wordpress中,我需要对其进行编程,以便只要有人输入或更新名为“start_date”的帖子元,就会在保存之前输入一些代码。

我需要输入输入的内容并将其转换为unix时间戳。

有办法做到这一点吗?

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

1 个答案:

答案 0 :(得分: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”。