質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

2回答

4008閲覧

WordPressのカテゴリー別の記事一覧を表示したいです

ami15821

総合スコア56

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2016/06/06 11:23

編集2016/06/09 11:33

###前提・実現したいこと
ブログページのサイドバーに読み込ませたカテゴリーのリンク先に、カテゴリー別の記事一覧ページを表示できるようにしたいです。

###発生している問題・エラーメッセージ

サイドバーに「wp_list_categories」関数を使ってカスタム分類の一覧を出力をするとことまではできたのですが、クリックしてもリンク先が表示されないため、taxonomy-category.phpを作り、再度読み込みをしてから出力されたカスタム分類をクリックしましたが、表示がされませんでした。
→【修正】2016/06/09 taxonomy-category.phpは削除してtaxonomy.phpのみに変更しました。

###該当のソースコード
sidebar.php

<p class="contenc_tite">category</p> <?php wp_list_categories(array('title_li' => '', //デフォルトで出力されるタイトルを非表示 'taxonomy' => 'cat01', //カスタム分類名 'show_count' => 1 //各カテゴリーに投稿数を表示する )); ?>

taxonomy-category.php

<?php $cat = get_the_category(); $cat = $cat[0]; $cat = $cat->cat_ID; $posts = get_posts("order=asc&category=$cat&numberposts=100"); ?> <ul id="pagelist"> <?php foreach($posts as $post): ?> <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a> <?php the_time(get_option('date_format')); ?></li> <?php endforeach; ?> </ul>

taxonomy.php

<?php $tax_posts = get_posts('post_type=blog_page01&taxonomy=cat01&term=murmur'); if($tax_posts): ?> <ul> <?php foreach($tax_posts as $tax_post): ?> <ul class="border clearfix"> <div class="col_l"> <span class="thumb"> <a href="<?php echo get_permalink($tax_post->ID); ?>"> <?php if(has_post_thumbnail($tax_post->ID)) { echo get_the_post_thumbnail($tax_post->ID,'post-thumbnail'); } ?> </a> </span> </div> <!-- col_l --> <div class="col_r"> <span class="blog_topic title"><?php echo get_the_title($tax_post->ID); ?></span> <li class="day01"><?php the_time('Y年n月j日'); ?></li> <li class="topic_text03"><a href="<?php the_permalink() ?>"><?php echo mb_substr(strip_tags($tax_post->post_content), 0, 200).'...'; ?> </a></li> </div> <!--col_r--> </ul> <?php endforeach; ?> </ul> <?php endif; ?>

###試したこと
1.category.php → taxonomy-category.phpに変更 表示されず。。。
2.taxonomy-category.php → taxonomy-cat01.phpに変更 表示されず。。。
3.taxonomy-category.phpは削除してtaxonomy.phpのみに変更(表示されるようになる)
4.taxonomy.phpの該当箇所のコードを書き換えて、今はレイアウトの崩れがなく特定のカスタム投稿タイプの特定のタクソノミーの値に一致する記事だけが表示される設定なっています。
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

#試していません:
##まずは表記のコードを検索:
https://developer.wordpress.org/reference/functions/get_the_category/
上記 Reference に以下の表記があります。:
"For custom taxonomies use get_the_terms().".
って事は?
##get_the_terms();
https://developer.wordpress.org/reference/functions/get_the_terms/
これぐらいしか思い当たらず、見つけられませんでした。
的外れはご容赦を。

投稿2016/06/07 07:53

Webmans-JP

総合スコア51

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ami15821

2016/06/07 08:16

ご回答、ありがとうございます。 taxonomy-category.phpの $cat = get_the_category(); $cat = $cat[0]; を $cat = get_the_terms(); $cat = $cat[0]; に変更、ということだったのでしょうか? 変更してみたのですが、表示は変わりませんでした。
Webmans-JP

2016/06/07 09:51

え~と…私は50歳を過ぎているので、こんな時には恐ろしくアナログに、「考えず」に「データ取得を繰り返す」のが基本です。そこにはパターンも有ります。 例えば表記の「 $cat 」ですが、どんな条件の時に取得出来ている・いないのか? Condition を噛ませてあるのなら、それはどう動いているのか? パターンを抽出して、「対症療法」ではなく、「根本」から見れば、逆に時間も掛かりません。 「仮定」の積み重ねは当たれば面白く成功体験も得られますが、外れた時の時間コストが大き過ぎます。 公開出来る範囲もお有りでしょうから、後は頑張ってみて下さい。参考にならず、恐縮です。
ami15821

2016/06/07 10:56

こちらこそ、お時間を割いていただいてありがとうございます。 wordpressの根本が、未だよくわからずいじくっている初心者ですので、質問の仕方に穴がある可能性も十分にございます。 ご対応、ありがとうございました。 また機会がございましたら、よろしくお願いいたします。
guest

0

ベストアンサー

カスタム分類のタクソノミー名がcat01ならば、
taxonomy-category.php

taxonomy-cat01.php
では?

投稿2016/06/06 11:53

編集2016/06/06 11:54
kei344

総合スコア69366

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ami15821

2016/06/06 12:05

いつも早い回答、ありがとうございます。 taxonomy-cat01.php に変更しましたが、表示されませんでした。。。 今表示されるのは、長いリロードのあとに ****.co.jpページは機能していません ****.co.jp でリダイレクトが繰り返し行われました。 と表示されてしまいます。
kei344

2016/06/06 13:33

それはテンプレートファイル名の問題ではなく、別の問題です。同名のスラッグを、カテゴリスラッグや投稿スラッグやページスラッグに使用されていませんか?ひとまず長めの別名でカスタム投稿タイプを作成し、お試しください。 【WordPressで無限リダイレクトが発生したときの対策と調査メモ】 http://did2memo.net/2016/01/26/wordpress-redirect-loop/
ami15821

2016/06/07 04:43 編集

お世話になっております。 長めの別名でカスタム投稿タイプを作成しました。 サイドバーのカテゴリー一覧をクリックすると、今度はTOPページ(index.php)が表示されるようになりました。
kei344

2016/06/07 04:52

リンクのURLと表示されたときのURLがわからないので、なんとも回答出来ません。 > 長めの別名でカスタム投稿タイプを作成しました。 カスタム分類ではなかったのですか?その場合テンプレートがそもそも違います。 全てのプラグインを停止し、テーマをデフォルトに戻した状態でカスタム分類/カスタム投稿タイプのみを追加し、管理画面のカスタム分類/カスタム投稿タイプに有る表示リンクからサイトを表示させてみてください。
ami15821

2016/06/07 05:28

失礼いたしました。 表示されたページのURLはカテゴリー名のページでした。 ページレイアウトがTOPページ(index.php)の表示で、TOPページが表示されていると勘違いしておりました。
ami15821

2016/06/07 07:24 編集

>全てのプラグインを停止し、テーマをデフォルトに戻した状態でカスタム分類/カスタム投稿タイプのみを追加し、管理画面のカスタム分類/カスタム投稿タイプに有る表示リンクからサイトを表示させてみてください。 →全てのプラグインを停止し、テーマをデフォルト(Twenty Sixteen)に戻しました。 カスタム投稿タイプはプラグイン『Custom Post Type UI』で作っているので、プラグインを『Custom Post Type UI』だけ有効にして、管理画面のカスタム投稿タイプの投稿記事を確認しました。 表示内容は お探しのページが見つかりません。とデフォルトテーマのブログページに表示されました。
ami15821

2016/06/09 11:09 編集

ご対応ありがとうございます。 カテゴリーの記事一覧、表示されるようになりました。 taxonomy.phpを設置したら、表示されるようになりました。 ただ、タクソノミーのカテゴリー(ターム)がすべて表示されてしまう設定になっている上、画面表示にしたときにレイアウトが崩れてしまって未だ完了まで行けてません。。。 どう書き直せばいいのかわからず、作業が止まってしまっています。。。
kei344

2016/06/09 02:10

ここにコードを書かず、質問に追記してください。
ami15821

2016/06/09 02:33

失礼いたしました。 修正します。
kei344

2016/06/09 10:54

以前のコードを削除するのはやめましょう。あくまで追記でお願いします。また、コメントも編集可能なので、コード部分を削除しておいてもらえませんか?
ami15821

2016/06/09 11:10 編集

失礼いたしました 修正しました
ami15821

2016/06/09 11:14 編集

taxonomy.php の以下のコード <?php $tax_posts = get_posts('post_type=blog_page01&taxonomy=cat01&term=murmur'); if($tax_posts): ?> ここの部分のterm=murmur'を特定のタームではなくて、カスタム投稿記事をターム毎に分類して一覧表示するできるような記述に書き直したいのですが、どう修正したらいいかわからないため困ってます。
kei344

2016/06/09 11:21

以前のコードは編集履歴から取得できるので、そこから復元してください。teratail はチャットツールではなく情報共有ツールなので、他の人がこの質問を見ることも考えるべきだと思います。回答と質問がかみ合わなくなるため、質問文の内容は削除せず追記してください。
ami15821

2016/06/09 11:35

失礼いたしました、削除してしまったコードを復元いたしました。
kei344

2016/06/09 12:08

get_posts を使わずに通常のloopで処理されれば良いのでは。 if ( have_posts() ) : while ( have_posts() ) : the_post(); // loop endwhile; endif;
ami15821

2016/06/10 01:45

kei様、いつも回答ありがとうございます。 アドバイスいただいた様にget_postsを使わないで通常のloopに変更しましたらようやく希望通りの表示になりました。 ごちゃごちゃと書き過ぎていた様です。 長いお付き合い、ありがとうございました。
kei344

2016/06/10 01:47

いえ、解決されたようでよかったです。カスタマイズがんばってください!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問