前の記事、次の記事への機能がうまく動かないときに確認すること

前の記事、次の記事への機能がうまく動かないときに確認すること

前の記事、次の記事へ遷移するための機能は、previous_post_link、next_post_linkを使うと簡単に実装できるじゃないの?と思っているかもしれません。
確かに、その通りで、previous_post_link、next_post_linkを使います、ただ、intuitive custom post orderというプラグインをいれている場合は、思った挙動をしないなんてことが起こり得るので今回はそんなときの対処法を説明します!

previous_post_link、next_post_linkは、現在の投稿から見て、一つ前の記事のリンク、一つあとのリンクを取得します。
これは、管理画面の投稿の並びと同じようになっています。いくら、投稿後に公開日を過去にしたところで、並びを変えない限り、変わりません。
そのため、過去の年月で記事をいれたいとなったときに、そのまま記事を入れてしまうと、次の記事がその記事より先の日付のものになったり、前に戻ってもその記事より日付が新しいものになったり、日付順にならなくなってしまいます。


  function admin_custom_posttype_order($wp_query) {
    if( is_admin() ) {
        $post_type = $wp_query->query['post_type'];
        if($post_type == '投稿タイプの名前') {
        $wp_query->set('orderby','date'); //並べ替えの基準(日付)
        $wp_query->set('order','DESC'); //新しい順。古い順にしたい場合はASCを指定
        }
     }
    }
    add_filter('pre_get_posts', 'admin_custom_posttype_order');

管理画面の並び順ということは、管理画面の並びを変えたらうまくいくのではないか??
そう思い、function.phpに上記を追加し、並びを日付順にしましたが、うまくいきません。

実は、intuitive custom post orderというプラグインをいれていると管理画面の並びを変えたところでうまくいかないのです。
そのため、intuitive custom post orderをオフにしたら、うまくいきます!
設定→並び替え設定
チェックを外すだけです

まとめ
もし、前の記事、次の記事への機能を実装するときにうまく日付順にならない場合は、intuitive custom post orderを入れていないか一度チェックしてみてください!

SNSシェア

WP TECH WordPress技術専門 Tips

コーポレートサイトへ

WP TECH WordPress技術専門 Tips

採用サイトへ