wordpress / マージページの仕様を変更し、固定ページで投稿者の一覧リストを表示させる
*areinaru*.wpblog.jp
今日はまだまだ続きます。
先のやり方で、cinema(第一階層)、ramen(第一階層)、tag、date のアーカイブ(一覧)系ページを
使い回しで簡単に作るすことができました。
ちなみに、カスタム投稿アーカイブ(一覧)URLの調べ方はこれ。
カスタム投稿タイプのアーカイブページへのアドレスのみ取得する方法
https://memocarilog.info/wordpress/theme-custom/5085
お次は、カスタム投稿と通常投稿が混在するため、
上のカスタム投稿のアーカイブ(一覧)ページでは対応できなかった「archives」ページ。
最初は単純に「archive.php」テンプレートを読みに行くよう、グローバルメニューからリンクを設定したけど、
そうすると、記事がきちんと引っ張って(抽出して)来れない。
いろいろ調べたけれどダメで、先ほど最後に仮説で考えた「page-archive.php」を
「header.php」「footer/php」と「archive.php(または)content-page.php」の3テンプレートに分けて
「page-archive.php」上でガッチャンコを試してみたけど、これも不発。。。。
固定ページのコンテンツテンプレートの読み込み
https://www.nishi2002.com/4385.html
【WordPress】任意のテンプレートパーツを読み込む関数[get_template_part() ;]の使い方。
http://on-ze.com/archives/1144
これはなかなかディープな感じになってきたので、また発想を変えることにしました。
「archives」ページは、記事のアーカイブ(一覧)要素をなくして、
カテゴリー名のみ一覧、タグ名のみ一覧、年別のみ一覧、投稿者名のみ一覧、、、と
全て項目名のみを列挙させるようにしよう。
これなら、既に実装を試している、、、カテゴリー名のみ一覧、タグ名のみ一覧、年別のみ一覧はそのまま流用できるし、
新たな追記は、投稿者の一覧だけでよいから。
プラグイン不要!固定ページで投稿者の一覧リストを表示させる
https://bge.jp/page-writer-archive/
【WordPress】ユーザーの一覧を表示させる方法。
http://on-ze.com/archives/5437
結果は、、、おお、ステキ!うまく実装できた!
デザインは後でCSSで一気に整えていくとして、一先ずOK!
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)の中に
ループの記載のあるテンプレを作って読み込ませればいいのかな?
もう少し余裕ができたら、試してみよう。
wordpress / query_posts() を使わない固定ページでのマージ
*areinaru*.wpblog.jp
いろんな意味できちんと確認しながらやろうと、デザインテンプレートを変更したら一気にサイトが崩れた。。
えらく時間がかかりながらも、なんとか各ページの php テンプレートを準備し、最低限の挙動を確認。
ようやく再びスタートラインに立ちました。
今夜のチャレンジは、固定ページでのマージ。
なんとか query_posts() を使わない方向で(先日成功した functions.php への記述で)
対応しようとしたのだが、上手くいかん。。。
またも暗礁に乗り上げたので、一旦時間を置いてから再検索。
すると、下記のページで query_posts() が散々フルボッコにされた挙句、、、
テンプレートタグ/query posts
https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/query_posts
こんなトドメの一言が。。。
固定ページのリクエストでは動作しません。
苦笑。
半泣きで「query_posts() に変わる方法」を検索ワードに据えて調べ直してみたら
ついに出会えましたヨ!
query_postsは非推奨?代わりにget_postsで条件指定!投稿を取得する方法【WordPress】
http://www.misallychan.com/entry/2016/10/28/163000
早速試したら大成功しました!どうもありがとうございました。
と締めようと思ったら、今度はページ送りが出なくなった。。。涙
というわけで、明日に続く。