2016-07-20 10 views
0

年ごとのアーカイブを表示したいので、年が表示され、をクリックすると、その年のすべての投稿が表示されます。問題は、post_date(デフォルトの動作)ではなく、カスタム日付(ACFで作成されたカスタムフィールド)で表示されるようにすることです。 wp_get_archives関数をACFによって投稿するように変更するフックはありますか?ACFでwp_get_archivesを変更

答えて

0

私は最近、プロジェクトで同様の要件を満たしていました。 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つの欠点は、日付が将来であれば、投稿は公開されずにスケジュールされることです。

関連する問題