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

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

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

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

Q&A

解決済

1回答

1065閲覧

wordpress  タクソノミーに設定したカスタムフィールドを条件分岐で表示させたいです

raise

総合スコア9

WordPress

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

0グッド

0クリップ

投稿2020/11/13 04:43

編集2020/11/13 08:57

タクソノミー(カスタム投稿のカテゴリ) に登録しているカスタムフィールド を
条件分岐で表示する方法が分かりません。

入力があれば「titlehtml」(カスタムフィールド)を表示
なければ<?php wp_title( '' ); ?> | <?php bloginfo( 'name' ); ?>を表示させたいです。

現状、以下でカスタムフィールドの表示だけはできるのですが、

<title> <?$taxonomy = 'area_cat'; $term_slug = get_query_var('term');
$the_term = get_term_by('slug', $term_slug, $taxonomy); $term_id = $the_term->term_id; //タームのカスタムフィールドを取得するためのIDは「カスタム分類(タクソノミー)名_タームID」 $term_idsp = $taxonomy."_".$term_id; //タームではなく、カテゴリの場合は「category_カテゴリID」にする //$cat_id = $category->cat_ID; //$term_idsp = 'category_'.$cat_id; if(get_field('titlehtml', $term_idsp)){ echo get_field('titlehtml', $term_idsp); } ?>
</title>

以下の文とつなぐことができません
(値がなければ以下を表示)

<title><?php wp_title( '' ); ?> | <?php bloginfo( 'name' ); ?></title>

以下のような感じで書いていますがエラーが出てしまいます。

<title> <?$taxonomy = 'area_cat'; $term_slug = get_query_var('term'); $the_term = get_term_by('slug', $term_slug, $taxonomy); $term_id = $the_term->term_id; $term_idsp = $taxonomy."_".$term_id; $term_idsp = get_field( 'titlehtml', 'term_idsp'.$term_ID); $titlehtml = get_field('titlehtml', $term_idsp); } ?> <?php if( get_field(‘titlehtml’) ): ?> <?php echo $titlehtml; ?> <?php else : ?> <?php wp_title( '' ); ?> | <?php bloginfo( 'name' ); ?> <?php endif; ?> </title>

よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

get_fieldという関数が何者かわかりませんが、取得できているということであれば下記のような感じです。

PHP

1<? 2(省略) 3$titlehtml = get_field('titlehtml', $term_idsp); 4?> 5<?php if( $titlehtml ): ?> 6<?php echo $titlehtml; ?> 7<?php else : ?> 8<?php wp_title( '' ); ?> | <?php bloginfo( 'name' ); ?> 9<?php endif; ?>

次回よりソースコードを提示される際はマークダウンを利用してください。

投稿2020/11/13 05:08

tabuu

総合スコア2492

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

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

raise

2020/11/13 06:41

コメントありがとうございます! 早速試してみましたがエラーになってしまいました。 <?$taxonomy = 'area_cat'; $term_slug = get_query_var('term'); $the_term = get_term_by('slug', $term_slug, $taxonomy); $term_id = $the_term->term_id; $term_idsp = $taxonomy."_".$term_id; if(get_field('titlehtml', $term_idsp)){echo (get_field('titlehtml', $term_idsp));} ?> この文のif文を>の外に出して 別々に書く感じにしたいのですが、どうしてもうまくいきません...
tabuu

2020/11/13 06:52

ソースコードが横に並ぶと見難いので質問を編集してマークダウンで書いていただけないでしょうか。
raise

2020/11/13 07:11

お手数掛けすみません。 質問編集致しました。 マークダウン調べましたが、間違っていたら申し訳ないです。
tabuu

2020/11/13 07:28

先ほどよりは見やすくなっていますが、まだマークダウンになっていません。 こちらのサイトのヘルプでご確認ください。 そして私が提示したコードをまだ反映していないようです。 get_fieldで取得した値を$titlehtmlという変数に入れてください。 if文では$titlehtmlの値で条件分岐してください。
raise

2020/11/13 07:38

ご連絡ありがとうございます。 マークダウン今読んでいます。変更するのにまだ時間かかりそうなので、まず返信だけさせていただきました。 時間かかってしまいすみません...
tabuu

2020/11/13 07:50

マークダウンは後回しでもいいので、以下をお試しください。 ・get_fieldで取得した値を$titlehtmlという変数に入れてください。 ・if文では$titlehtmlの値で条件分岐してください。
raise

2020/11/13 08:59

ありがとうございます。 いただいたソース再編集していれました。 ・get_fieldで取得した値を$titlehtmlという変数に入れてください。 これは変数に入れるというのがわからなくて <?php if( get_field(‘titlehtml’) ): ?> <?php echo $titlehtml; ?> この部分のことでしょうか。
tabuu

2020/11/16 00:18

<?php if( get_field(‘titlehtml’) ): ?> ↓ <?php if( $titlehtml ): ?> コードを置き換えても上手く行かない場合は$titlehtmlにどのような値が入っているかご確認ください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問