Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过ACF更改wp_获取_档案_Php_Wordpress - Fatal编程技术网

Php 通过ACF更改wp_获取_档案

Php 通过ACF更改wp_获取_档案,php,wordpress,Php,Wordpress,我想按年份显示帖子的存档,这样就会显示年份,单击时,可以查看该特定年份的所有帖子。问题是我希望它们不是按post_date(默认行为)显示,而是按自定义日期(用ACF创建的自定义字段)显示。 是否有任何钩子可以将wp\u get\u archives功能更改为由ACF担任职务?我最近在一个项目中有一个类似的要求。我们发现使用wp\u post\u update()hook从日期选择器获取值并将其应用为post\u日期最简单 function my_acf_save_post( $post_id

我想按年份显示帖子的存档,这样就会显示年份,单击时,可以查看该特定年份的所有帖子。问题是我希望它们不是按
post_date
(默认行为)显示,而是按自定义日期(用ACF创建的自定义字段)显示。
是否有任何钩子可以将
wp\u get\u archives
功能更改为由ACF担任职务?

我最近在一个项目中有一个类似的要求。我们发现使用
wp\u post\u update()
hook从日期选择器获取值并将其应用为
post\u日期
最简单

function my_acf_save_post( $post_id ) {

    // get new value
    $theDate = get_field('post-date', $post_id, false);
    $theDate = date_create_from_format('Ymd', $theDate);
    $theDate = date_format($theDate, 'Y-m-d H:i:s');

    $my_post = array(
      'ID'           => $post_id,
      'post_date'   => $theDate,
    );
    // do something

    // unhook this function so it doesn't loop infinitely
    remove_action('acf/save_post', 'my_acf_save_post');

    // update the post, which calls save_post again
    wp_update_post( $my_post );

    // re-hook this function
    add_action('acf/save_post', 'my_acf_save_post');

}

// run after ACF saves the $_POST['acf'] data
add_action('acf/save_post', 'my_acf_save_post', 20);
上面的代码片段是由James在ACF支持论坛上提供的,但对我们有用。这种解决方案的一个缺点是,如果日期是在将来,那么帖子将被安排而不是发布