在wordpress中,我需要对其进行编程,以便只要有人输入或更新名为“start_date”的帖子元,就会在保存之前输入一些代码。
我需要输入输入的内容并将其转换为unix时间戳。
有办法做到这一点吗?
如果没有,有没有办法在发布或更新帖子时添加代码,以便检查该元数据并在需要时更新它?
答案 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”。