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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

WordPress

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

PHP

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

Q&A

解決済

3回答

708閲覧

ワードプレス、カスタム投稿でカテゴリー名が表示されない。

UKYO9311

総合スコア31

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

WordPress

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

PHP

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

0グッド

0クリップ

投稿2019/08/07 09:29

編集2019/08/08 07:36

前提・実現したいこと

お知らせページは通常の投稿で行い、ブログ投稿を別でカスタム投稿で実装していたのですが、カテゴリー名だけ表示されなくて困っています。

イメージ説明

お手数おかけしますが、ご回答よろしくお願いいたします。(>_<)

該当のソースコード

php

1 2// カスタム投稿タイプ「ブログ」を追加する 3 4 5add_action( 'init', 'create_post_type_blog' ); 6function create_post_type_blog() { 7register_post_type( 'blog', //カスタム投稿タイプ名 8array( 9'labels' => array( 10'name' => __( 'ブログ' ), 11'all_items' => __( 'ブログ一覧' ), 12 13), 14'public' => true, 15'has_archive' => true, //アーカイブページを持つ 16'menu_position' =>5, //管理画面のメニュー順位 17'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'custom-fields' ,'comments' ), 18) 19); 20/* カテゴリーの設定 */ 21register_taxonomy( 22'blog_category', //カテゴリーの名前 23'blog', //使うカスタム投稿タイプ名 24array( 25'hierarchical' => true, //trueで親子関係使用 26'update_count_callback' => '_update_post_term_count', 27'label' => 'カテゴリー', 28'singular_label' => 'カテゴリー', 29'public' => true, 30'show_ui' => true 31) 32); 33/* タグを設定 */ 34register_taxonomy( 35'blog_tag', //タグの名前 36'blog', //使うカスタム投稿タイプ名 37array( 38'hierarchical' => false, 39'update_count_callback' => '_update_post_term_count', 40'label' => 'タグ', 41'singular_label' => 'タグ', 42'public' => true, 43'show_ui' => true 44) 45); 46} 47

php

1 2<ul class="col col4 col_sp_full"> 3 <?php 4 $args = array( 5 'post_type' => ‘blog’, 6 'posts_per_page' => 4 7 ); 8 $query = new WP_Query( $args ); 9 ?> 10 11 <?php if ( $query->have_posts() ) : ?> 12 <?php while ( $query->have_posts() ) : $query->the_post();?> 13 14 <li> 15 <a href="<?php the_permalink(); ?>" class="ddm-block"> 16 <?php the_post_thumbnail(); ?> 17 <div class="home-strength-list-inner"> 18 <div class="tag"> 19 <span> 20 <?php 21 global $post; 22 $terms = get_the_terms($post->ID, 'blog_category'); 23 ?> 24 </span> 25 </div> 26 <h4><?php the_title(); ?></h4> 27 <p> 28 <?php echo mb_substr($post->post_content, 0, 60).'…'; ?> 29 </p> 30 <div class="date-text"><?php the_time( 'Y.m.d' ); ?></div> 31 </div><!--/.home-strength-list-inner--> 32 </a> 33 </li> 34 35 <?php endwhile; ?> 36 <?php endif; wp_reset_postdata(); ?> 37 38 </ul> 39

試したこと

php

1<div class="tag"> 2 <span> 3 <?php 4 $terms = get_the_terms($post->ID, 'blog'); 5 var_dump($terms); 6 ?> 7 </span> 8</div>

を追加したら、

イメージ説明

このようなエラーが出ました。

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

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

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

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

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

UKYO9311

2019/08/07 09:36

コメントありがとうございます!!現在カテゴリーは表示されていない状態です。エラーは出ていません。
m.ts10806

2019/08/07 09:39

ifのところが変な感じですが、下記のようにすると何が出力されますか? 「起きていること」とともに質問本文更新してください。 $terms = get_the_terms($post->ID, 'blog'); var_dump($terms);
m.ts10806

2019/08/08 06:32

とりあえずは、データ取れてないのが原因ですね。
UKYO9311

2019/08/08 06:41

すみません返信したつもりでいました。こちらも試したのですが、上記と同じエラーが出てしまいまして。。。データが取れていないですか。
m.ts10806

2019/08/08 06:43

私が依頼したのは「デバッグ」といって 情報が正しくとれているかとかを確認するためのもので直接の解決策ではありません。あくまで「原因を探る手法」です。 出力内容にエラーが含まれているので、get_the_terms()の結果「想定のデータが取れていないから何も表示されないということが分かった」となります。 ただ、エラーメッセージが出ているので、調べがつきそうに思います。
guest

回答3

0

get_the_terms の第2引数に渡すのは、タクソノミーの名前(register_taxonomy の第1引数で指定したもの)です。

追記

$post->ID で投稿IDを参照するのであれば、global キーワードを使用する必要があります。

php

1global $post; 2$terms = get_the_terms($post->ID, 'blog_category');

投稿2019/08/07 09:55

編集2019/08/07 10:54
YukiYamashina

総合スコア1011

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

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

UKYO9311

2019/08/08 06:24

ご回答ありがとうございます!!!(>_<) この方法も試したのですが、何も表示されないという感じになってしまいます。。。 今最新のコードを更新します。
YukiYamashina

2019/08/08 07:27

span要素がごっそり消されているのですが、なぜでしょうか?
UKYO9311

2019/08/08 07:36

すみません編集時のミスでした。
guest

0

PHP

1/* カテゴリーの設定 */ 2register_taxonomy( 3'blog_category', //カテゴリーの名前

と設定されているので、

PHP

1$terms = get_the_terms($post->ID, 'blog_category');

にしてみるとどうでしょう?

また、併せて設定>パーマリンク設定>保存を押してください。

【追記】

PHP

1$args = array( 2 'post_type' => 'blog',//blogを囲う文字をシングルクオートに。 3 'posts_per_page' => 4 4);

投稿2019/08/07 09:56

編集2019/08/07 10:05
yukikp

総合スコア797

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

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

UKYO9311

2019/08/07 10:04

ご回答ありがとうございます!!上も更新しましたが、blog_categoryに変更してもエラーになってしまいます。
yukikp

2019/08/07 10:04

追記しました。
UKYO9311

2019/08/08 06:23

ご丁寧に本当にありがとうございます!!( ; ; ) ずっと上記のやり方で試しているのですが、変わりなしでして。。。 今コード更新します。
guest

0

自己解決

このように修正したら表示できましした!!!!

<?php if ($terms = get_the_terms($post->ID, 'blog_category')) { foreach ( $terms as $term ) { echo esc_html($term->name); } } ?>

みなさんありがとうございました( ; ; )

投稿2019/08/08 07:45

UKYO9311

総合スコア31

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

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

yukikp

2019/08/08 10:22

お、おう!えがった。 でも回答者はみんなblog_category使ってってそう回答してるやん? あ、もしかしたらその後のやり方もわからなかったのかな?
UKYO9311

2019/08/09 00:08

おさわがせしました。。。ありがとうございます( ; ; ) そうなんです。その後の記述もよくわからなくてですね。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問