2016-07-20 38 views
0

我想按年份显示帖子的存档,所以年份显示,点击时查看该特定年份的所有帖子。问题是我希望它们不是通过post_date(默认行为)显示,而是通过自定义日期(由ACF制作的自定义字段)显示。 是否有任何钩子更改wp_get_archives函数以便ACF发布帖子?通过ACF更改wp_get_archives

回答

0

我最近在一个项目中有类似的要求。我们发现从日期选择器中获取数值最容易,并使用wp_post_update()钩子将其应用为post_date

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支持论坛上提供,但为我们工作。这个解决方案的一个缺点是,如果日期是未来,这个帖子将被安排而不是发布。