所以我试图让ACF设置自定义帖子类型的发布日期。。。这是可行的。
它将在第一次正确设置帖子的日期,但在更新后,它将更新帖子,但也将复制帖子,其日期设置为1970年1月1日。
我似乎无法找出重复的原因,这是我的代码,它位于我的函数中。php:
add_action(\'save_post\', \'change_content\');
global $post;
global $wpdb;
function change_content($post_id) {
$datefield = get_post_meta($post_id, dateAllergy ,true);
$post_date = date("Y-m-d H:i:s", strtotime($datefield));
$my_post = array();
$my_post[\'ID\'] = $post_id;
$my_post[\'post_date\'] = $post_date;
if ( ! wp_is_post_revision( $post_id ) ){
// unhook this function so it doesn\'t loop infinitely
remove_action(\'save_post\', \'change_content\');
// update the post, which calls save_post again
wp_update_post( $my_post );
// re-hook this function
add_action(\'save_post\', \'change_content\');
}
}
任何帮助都将不胜感激!
提前感谢!
*Edit
解决了它。写了一个不同的方法,我将把它留在这里,以防其他人需要类似的东西。
<?php
function allergy_update( $value, $post_id) {
$new_date = date("Y-m-d H:i:s", strtotime($value));
// update post
$allergy_postdata = array(
\'ID\' => $post_id,
\'post_date\' => $new_date,
);
if( ! ( wp_is_post_revision( $post_id) && wp_is_post_autosave( $post_id ) ) ) {
// unhook this function so it doesn\'t loop infinitely
remove_action(\'save_post\', \'allergy_update\');
// update the post, which calls save_post again
wp_update_post( $allergy_postdata );
// re-hook this function
add_action(\'save_post\', \'allergy_update\');
}
return $value;
}
add_filter(\'acf/update_value/name=dateAllergy\', \'allergy_update\', 10, 3);
?>