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

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

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

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

PHP

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

Q&A

解決済

2回答

2480閲覧

wordpressでカテゴリIDからカテゴリを取得する方法

kenkbou

総合スコア151

WordPress

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

PHP

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

0グッド

0クリップ

投稿2017/05/17 15:32

編集2017/05/17 16:21

タイトルの通りになるのですが、
CPT UIにてカスタム投稿を作成し、
そこにカスタムフィールド(Advanced Custom Fields)でカテゴリを追加しました。

通常の編集画面で選択したカテゴリであれば、

PHP

1<?php get_the_category(); ?>

こちらでカテゴリを取得することが出来るのが、

カスタムフィールドで追加し選択したカテゴリは上記の方法では取得出来ませんでした。

PHP

1$post = get_post(get_the_ID()); 2$cat = $post->category;

上記の方法でカテゴリーIDは取得出来るのですが、カテゴリIDからカテゴリを取得する方法が分からず質問させていただきました。

また、カスタムフィールドで選択したカテゴリはカウントが増えないことも分かっており、hide_emptyは0のものも取得したいです。

なぜ通常のカテゴリで選択しないのかと言うと、UI上の問題からです。
選択肢が数万件あるので、プルダウンやチェックボックスでは対応出来ないので、Advanced Custom Fieldsを使用しました。

よろしくお願いします。

追記

single

1 <?php 2 while ( have_posts() ) : the_post(); 3 get_template_part( 'template-parts/content', 'single' ); 4 endwhile; 5 ?>

template

1<?php 2$post = get_post(get_the_ID()); // $post->IDは取得出来ている 3$category_id = $post->category; // categoryIDは取得出来ている 4$cat = get_the_category($post->ID); 5var_dump($cat); // null 6exit();

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

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

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

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

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

guest

回答2

0

functions.phpに関数を作成し、
get_fieldを用い、取得することが可能。

投稿2017/05/17 16:29

kenkbou

総合スコア151

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

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

0

ベストアンサー

PHP

1$my_post = get_post( get_the_ID() ); 2$categories = get_the_category( $my_post->ID );

【get_the_category() | Function | WordPress Developer Resources】
https://developer.wordpress.org/reference/functions/get_the_category/

投稿2017/05/17 15:39

kei344

総合スコア69400

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

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

kenkbou

2017/05/17 15:43

ありがとうございます。ただ、これでもNULLが返ってきてしまうんです。
kei344

2017/05/17 15:52

$my_post->IDに値が無いとか? ループ全体を含めたコードを提示してください。
kenkbou

2017/05/17 15:59

$my_post->IDは存在しています。 以下のようなソースです。 single-AAA.php <?php $post = get_post(get_the_ID()); // $post->IDは取得出来ている $cat = get_the_category($post->ID); var_dump($cat); // null exit();
kei344

2017/05/17 16:06

ループ全体を含めたコードを質問文に追記してください。 また、Advanced Custom Fields にはカテゴリを作る機能はありませんので、別のものと勘違いされていると思います。カテゴリのカスタムフィールドは作成できますが、文脈からそうは思えませんし。 「カテゴリ」という名前のカスタムフィールドを作った場合はそもそもget_the_categoryとか関係ないので値が出ない可能性があります。
kenkbou

2017/05/17 16:24

追記にループから書かせていただきました。上がsingle-AAA.phpで下がtemplate-parts/content-single.phpになります。 カテゴリを作る機能が無いのは知っています。 紐付いていないのですね、ありがとうございます。理解出来ました。 では、categoryIDからカテゴリを取得するのは難しいのでしょうか・・・?
kenkbou

2017/05/17 16:28

内容理解しました。 functions.phpを使用して、get_fieldを用い、取得することが出来そうです。 素人な質問で失礼しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問