SGDG_BIBOU6

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

wordpress / 親子カテゴリ名の表示と投稿者アーカイブ

*areinaru*.wpblog.jp

次のステップは、カテゴリページの調整。

(この記事は、2017/04/17 の記事の続きでもあります)

 

「cinema」「ramen」は、それぞれ子カテゴリを持っているんだけど、

「cinema」「ramen」の第一階層(カスタム投稿アーカイブ)と区別するために、

カテゴリのテンプレ―ト(category.php)を用意しました。

WordPress(親カテゴリ、子カテゴリ)タイトル表示について
https://teratail.com/questions/49596

 

最初は「categry.php」だけで事足りると思ったけど、やはり親-子の表示の時に意図したような表示にならない。

上のコードは、親カテゴリだけしかない時は親カテゴリ名のみ表示と融通が効くけど、

親-子とカテゴリが存在しそれを表示させる時に、字間などのレイアウトの調整が全然できないというのが痛い。

 

ならばと、「cinema」「ramen」の親カテゴリを選択した場合に適用される

「category-cinema.php」と「category-ramen.php」を用意し、ページタイトル部分は
親のカテゴリ名「cinema」「ramen」を直打ちで準備

そして、「cinema」「ramen」の子カテゴリ、またはそれ以外のカテゴリを選択した場合の「categry.php」に、

親-子それぞれのカテゴリ名を別々に表示させるようコードをバラして準備しました。

現在のカテゴリの親カテゴリを表示したい〜WordPress
http://itstudio.co/2015/03/25/3750/

 

親カテゴリは出力せずに子カテゴリ名だけ出力する@WordPress
http://blog.showzine.co/entry/only-child-category_display.html

 

成功です!よかったー!

 

今日は順調に進んでますが、次の宿題

アーカイブ(一覧)系のページに表示してる投稿者名のリンクが、

選択した投稿者のアーカイブ(一覧)ページに飛ばずに、その記事自体の詳細ページに飛んでしまってるので、

コードを修正する必要あり!

参考サイトはこのへんかな。

 

WordPressの記事ページに投稿者名を表示する
http://www.koikikukan.com/archives/2012/03/29-005555.ph

 

がんばりましょう。

 

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)の中に

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

 

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