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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

957閲覧

wordpressのパンくずリストで子カテゴリーの表示

siruba

総合スコア44

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/06/11 03:37

こんにちは。質問させて頂きます。
wordpressのパンくずリストで

ホーム > カテゴリー > タイトルと現状なっているのですが、

ホーム > カテゴリー > 子カテゴリー
に変更したいのですが、どうすればいいか構文をご教示頂きたいです。
よろしくお願いいたします。

<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> <a href="<?php echo home_url(); ?>" itemprop="url"> <span itemprop="title">ホーム</span> </a> </div> <?php $postcat = get_the_category(); ?> <?php $catid = $postcat[0]->cat_ID; ?> <?php $allcats = array($catid); ?> <?php while(!$catid==0) { $mycat = get_category($catid); $catid = $mycat->parent; array_push($allcats, array($parent, $postcat)); } array_pop($allcats); $allcats = array_reverse($allcats); ?> <div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><?php foreach($allcats as $catid): ?> <a href="<?php echo get_category_link($catid); ?>" itemprop="url"> &gt; <span itemprop="title"><?php echo get_cat_name($catid); ?></span> </a> <?php endforeach; ?> &gt; <?php the_title(); ?> </div>

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

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

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

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

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

guest

回答1

0

ベストアンサー

WordPressのカテゴリの扱いはクセあるから難しいですよね・・・。
原因は、whileの中の、
array_push($allcats, array($parent, $postcat));が正しく機能してないからです。
というか、宣言してない変数を入れようとしてるので、エラーさえ起きかねない構文になっています。

下記のようにしましょう。
今回は、入れたいものがカテゴリ一個一個なので、
$postcatからまっすぐforeach実行で事足りるでしょう。

php

1<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> <a href="<?php echo home_url(); ?>" itemprop="url"> <span itemprop="title">ホーム</span> </a> </div> 2<?php $postcat = get_the_category(); 3/* 今回はカテゴリを一個一個出せばいいので、ここからコメントアウト終了までの処理は必要ない。 4$catid = $postcat[0]->cat_ID; 5$allcats = array($catid); 6 7while(!$catid==0) { 8 $mycat = get_category($catid); 9 $catid = $mycat->parent; 10 array_push($allcats, array($parent, $postcat)); 11} 12array_pop($allcats); 13$allcats = array_reverse($allcats); 14*/ 15?> 16 <div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> 17<?php foreach($postcat as $cat): ?> 18 <a href="<?php echo get_category_link($cat->cat_ID); ?>" itemprop="url"> &gt; <span itemprop="title"><?php echo get_cat_name($cat->cat_ID); ?></span> </a> 19<?php endforeach; ?> &gt; <?php the_title(); ?> 20</div>

投稿2019/06/11 04:16

miyabi_takatsuk

総合スコア9528

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

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

siruba

2019/06/11 04:36

回答ありがとうございます。 子カテゴリーの表示ができました。 ちなみに子カテゴリーが複数ある場合、 ホーム > 親カテゴリー > 子カテゴリーA > 子カテゴリーB > タイトル という表記になったのですが、子カテゴリーBをなくすことはできますでしょうか? お手数おかけしますが、よろしくお願いいたします。
miyabi_takatsuk

2019/06/11 04:43

な、なるほど・・・。 前回のご質問の、親カテゴリがあるかないかで振り分け、の構文をうまく使うとできるかと思いますが。 これで一歩は進めたかと思いますので、 少しご自分でやってみましょう。 やってみて、どうしても、できなければまた、コメントください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問