SGDG_BIBOU6

いつかのジブンにおくるチエブクロ。

wordpress / query_posts() を使わない固定ページでのマージとページ送り

*reinaru*.wpblog.jp

昨夜の続き。

ページ送り(次のページ、前のページ)が全然出てこない。

たくさん調べても、なかなかよい解説ページに辿り着けない。。。

 

これまでのやり方( functions.php に記述。<pre_get_posts> を利用)だと

固定ページ以外はマージもページ送りもうまくいってたし、

直近のやり方( <get_posts> も <WP_Query> も)は、表示(抽出)なら

固定ページであってもうまくいってたんだよね。

WordPressのget_postsとWP_Queryの違いと使用方法について
http://yuji-okayama-designersworks.com/wordpress/596/

 

もどかしい、、、ので、一旦発想を切り替えてみよう。

 

そのキッカケとなったのはこちらの記述。

現在のWordPressでは、カスタム投稿タイプを使うのが王道です。

WordPressでページ送りが動かないのはどう考えてもquery_postsが悪い!【pre_get_posts、WordPressループまとめ】
http://notnil-creative.com/blog/archives/1996

 

なるほど。

グローバルメニューからのリンクを固定ページの phpテンプレート(page-XXXX.php)に飛ばさず、

カスタム投稿タイプのアーカイブページ(archive-カスタム投稿タイムのスラッグ.php)に飛ばしたら、

確かに <pre_get_posts> を使って対応ができそうな気がする。

 

やってみたら、、、、できましたヨ!ステキ!

今回のように、特にマージをしないアーカイブ(一覧)系のページには、

固定ページの phpテンプレート(page-XXXX.php)を使わないようにします。

 

追記補足)

ただ、、、このやり方だと、残念ながらページのURLに「カスタム投稿タイプのスラッグ」が用いられてしまうようぢゃ。

考えてみれば、当たり前の話なんだけど。

あ!

今回は特にそこまでURLにはこだわらないので、このままでいいけど、

どうしてもページURLを固定ページのスラッグと合わせたい場合は、

固定ページの phpテンプレート(page-XXXX.php)の中に

ループの記載のあるテンプレを作って読み込ませればいいのかな?

 

もう少し余裕ができたら、試してみよう。