0
我想按年份顯示帖子的存檔,所以年份顯示,點擊時查看該特定年份的所有帖子。問題是我希望它們不是通過post_date
(默認行爲)顯示,而是通過自定義日期(由ACF製作的自定義字段)顯示。 是否有任何鉤子更改wp_get_archives
函數以便ACF發佈帖子?通過ACF更改wp_get_archives
我想按年份顯示帖子的存檔,所以年份顯示,點擊時查看該特定年份的所有帖子。問題是我希望它們不是通過post_date
(默認行爲)顯示,而是通過自定義日期(由ACF製作的自定義字段)顯示。 是否有任何鉤子更改wp_get_archives
函數以便ACF發佈帖子?通過ACF更改wp_get_archives
我最近在一個項目中有類似的要求。我們發現從日期選擇器中獲取數值最容易,並使用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支持論壇上提供,但爲我們工作。這個解決方案的一個缺點是,如果日期是未來,這個帖子將被安排而不是發佈。