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

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

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

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

Q&A

解決済

2回答

2296閲覧

wordpress smartcustomfields 関連(タクソノミー)の使用方法

SSaka

総合スコア96

WordPress

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

0グッド

0クリップ

投稿2016/12/01 16:46

編集2016/12/01 23:10

smart custom fields 3.0.0を利用しています。
フィールドに、タイプ:関連(タクソノミー)を試験的に使用していて、
管理画面の一覧で中身を表示しようとしています。

このフィールドで指定した情報はterm_idなのか、
var_dumpすると、タクソノミで作成したものではなく、IDのようなものがstring型でこのフィールドに入っています。

lang

1var_dump(get_post_meta($post_id,'report_category',true))); 2$termdata=SCF::get_term_meta( get_post_meta($post_id,'report_category',true), 'report' ); 3echo(var_dump($termdata));

うまく利用する方法を検討しています。
アイデアお持ちだったり、URLなどあれば幸いです

結果

string(2) "84" array(0) { }

作者のページなども確認していましたが、指定の方法がサンプルとして両方あり、

lang

1SCF::get_term_meta( $term_id, $taxonomy )

lang

1SCF::get_term_meta( $post_id, $taxonomy )

SCF::get_term_metaのオプションの指定が悪いのか、post_id/term_idどちらも

term_idの場合

lang

1$taxonomy = 'report'; 2$termdata=SCF::get_term_meta($post_id, $taxonomy ); 3echo(var_dump($termdata));

この場合も
結果

string(2) "84" array(0) { }

post_idの場合

lang

1$term_id = SCF::get('report_category', $post_id); 2$taxonomy = 'report'; 3$termdata=SCF::get_term_meta($term_id, $taxonomy ); 4echo(var_dump($termdata));

結果

int(21151) array(0) { }

というように、期待した文字(タクソノミ名)を取得できていません。

このフィールドからデータ取得をするときに使う関数の選択が違うのでしょうか

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

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

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

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

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

guest

回答2

0

プラグインページのドキュメントに書いてありますよ。

https://ja.wordpress.org/plugins/smart-custom-fields/

あと、作者のブログにもあります。

http://2inc.org/blog/2014/10/09/4426/

投稿2016/12/01 16:52

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

SSaka

2016/12/01 23:12

ありがとうございます。 プラグインページ、作者ブログを見ながら何度か切り分けをしていました。 関連(タクソノミー)の場合の利用方法を上記で試している SCF::get_term_meta ではないかと試行錯誤していたのですがうまく取れていない状況です。
guest

0

自己解決

関数の選択が間違っていました。
以下コードで期待値が取れました。
ありがとうございました。

lang

1if($column_name == 'report_category'){ 2 $report_categories = SCF::get('report_category', $post_id); 3 if($report_categories){ 4 foreach ($report_categories as $report_category){ 5 $term = get_term_by('id',$report_category,'report'); 6 echo $term->name; 7 } 8 } 9}

投稿2016/12/02 16:25

SSaka

総合スコア96

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問