要设置发布日期的ACF字段-更新时过帐重复

时间:2016-02-26 作者:Drew T

所以我试图让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);
?>

1 个回复
SO网友:Andrew M

Drew,上面代码的一点是dateAllergy这个词应该用引号括起来,比如。我不确定这是否是问题所在,但值得改变。

 $datefield = get_post_meta($post_id, \'dateAllergy\' ,true);
另外,我刚刚注意到$post\\u id变量也将为空。您应该将其更改为$post->ID。这可以解释为什么会创建重复的帖子,因为它的值为null或空,Wordpress将创建一个单独的帖子

相关推荐

WPQuery Date and ACF

我正在创建一个查询,需要按ACF日期字段进行筛选。在数据库中(wp\\u post\\u meta table中)的值如下:MM/DD/YYYY我有几个房间,在date\\u available\\u from字段中的值为:2021 06月01日2021 08月21日2021 08月31日2021 09月06日2021 07月30日2021 11月31日2021 12月31日ul>然后我像这样进行查询:$args[1] = array( \'posts_per_page\' => -1