0
年ごとのアーカイブを表示したいので、年が表示され、をクリックすると、その年のすべての投稿が表示されます。問題は、post_date
(デフォルトの動作)ではなく、カスタム日付(ACFで作成されたカスタムフィールド)で表示されるようにすることです。 wp_get_archives
関数をACFによって投稿するように変更するフックはありますか?ACFでwp_get_archivesを変更
年ごとのアーカイブを表示したいので、年が表示され、をクリックすると、その年のすべての投稿が表示されます。問題は、post_date
(デフォルトの動作)ではなく、カスタム日付(ACFで作成されたカスタムフィールド)で表示されるようにすることです。 wp_get_archives
関数をACFによって投稿するように変更するフックはありますか?ACFでwp_get_archivesを変更
私は最近、プロジェクトで同様の要件を満たしていました。 datepickerから値を取得し、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);
上記のコードスニペットは、ACFサポートフォーラムでJamesによって提供されましたが、私たちのために働いていました。この解決策の1つの欠点は、日付が将来であれば、投稿は公開されずにスケジュールされることです。