wordpressのカスタム投稿で作った記事がページ送り(ページネーション)で上手く反映されない時の対処法

web制作

読了の目安時間: 223

wordpressサイトでカスタム投稿の記事を作ってみたところ、ページ送りがうまくいかない・・・。と思ったら、wordpressの$wp_queryに、カスタム記事のsetをしていませんでした。そのため、ページ送りの時にカスタム記事を読んでおらず、変なエラーになっていたようです。

wordpressのカスタム投稿の記事がページ送り(ページネーション)で上手く反映されない時の対処法

カスタム投稿の記事を作ったら、$wp_queryに忘れずにsetする

カスタム投稿の記事を作成したら、忘れずに$wp_queryにpostとしてsetしておきましょう。下記ソースをfunction.phpに記述することで、カスタム記事「custom_article」をpostとして扱うように設定しています。


add_action( 'pre_get_posts', 'home_posts_type' );
function home_posts_type( $wp_query ) {
    if ( ! is_admin() && $wp_query->is_main_query() && $wp_query->is_home() ) {
        $wp_query->set( 'post_type', array( 'post', 'custom_article' ) );
    }
}

上記のように記述しておくことで、カスタム記事「custom_article」をページ送りに反映することはもちろん、whileの呼び出しでも一緒に扱うことができるようになります。

※参考・引用
WordPressでページングが出来ない時はquery_postsではなくis_main_queryで解決だ!!
http://webhoo.net/2013/02/22/page_404_is_main_query/

他の方法は?

もちろん、ページ送りのソースコード側で、$wp_queryに反映させるような記述もできると思います。プラグインを使ってページ送りをしている場合も、同様・・・かな・・・? ソースコードを見てみないとなんともいえませんが、でもたぶん、wp_query関連でカスタム記事を反映させることができると思います。

WordPressにプラグイン無しでページネーションを設置する方法

ちなみに、WordPressにプラグイン無しでページネーションを設置する方法は、colissさんのサイトで分かりやすく解説してありましたので、トライしてみたい方は見てみてください。
http://coliss.com/articles/blog/wordpress/how-to-build-a-wordpress-post-pagination-without-plugin.html

まとめ

いかがでしたでしょうか。ページ送りがうまくいかないと焦るかもしれませんが、きちんと潰していけば、まあなんとかなります!

今読んだ記事をシェアする

wordpress

wordpressのカスタム投稿で作った記事がページ送り(ページネーション)で上手く反映されない時の対処法

  • このエントリーをはてなブックマークに追加
  • Pocket

このブログサイトが参考になった人は、いいねボタン! 更新情報も受け取れます!

arrow
デル株式会社
  • Pocket
  • このエントリーをはてなブックマークに追加

キヨタツ

キヨタツ

WEBを中心に、色々な制作をする個人事業主です。過去、エンジニア&webディレクターで会社勤めをしていました。主に要件定義や構築が得意で、HTML/css/javascript/PHP/git/wordpress/MT/DB/photoshop/illustrator/fireworksなど扱えます。現在、サーバー・アプリなどを習得中です。性格は、自虐好きです。