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

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

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

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

PHP

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

Q&A

3回答

594閲覧

固定ページのカスタムフィールドの値を表示

HiroFumi

総合スコア11

WordPress

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

PHP

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

0グッド

0クリップ

投稿2017/12/12 04:08

編集2017/12/12 07:33

###前提
プラグイン(Advanced Custom Fields)で作成した、固定ページのカスタムフィールドの値を表示させたいのですが上手くいきません。

固定ページID:93
表示させたいフィールド名:title_en
表示させたいフィールドタイプ:テキスト

###以下試した事

title_en に値が無いと怒られる

<?php $fields = get_post_custom(); $val = $fields['title_en'][0]; echo $val; ?>

そこで配列の中身を確認したところ title_en に値が入っていました。

<?php print_r($fields); ?> Array ([title_en] => Array ([0] => VOICE))

因みに以下は何も表示されない

$value = get_field('title_en'); echo $value;

配列の中身を確認したところやはり値は入っています。

$values = get_fields(); print_r($values); Array ([title_en] => VOICE)

値が存在するのに取得できない原因、解決策をご教示いただきたいです。
よろしくお願いいたします!!

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

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

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

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

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

guest

回答3

0

get_post_meta()は試しましたか?

PHP

1$meta = get_post_meta(93, 'title_en', true);

【追記】
同じ条件で試してみましたが取得できますね
ループ内に書いたのでget_the_ID()でIDを指定してます

PHP

1<?php 2$meta = get_post_meta(get_the_ID(), 'title_en', true); 3var_dump($meta); 4?>

出力結果

string(5) "VOICE"

投稿2017/12/12 05:47

編集2017/12/12 07:08
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

HiroFumi

2017/12/12 06:54

ありがとうございます。 上記でも他同様になにも表示されませんでした。。 以下で他のフィールドの値は取得出来る、title_en は値はあるのに取得できないのが謎です。。 $fields = get_post_custom(); $val = $fields['フィールド名'][0]; echo $val;
退会済みユーザー

退会済みユーザー

2017/12/12 07:02

> なにも表示されませんでした。。 戻り値はどうなってますか?空の配列ですか?
退会済みユーザー

退会済みユーザー

2017/12/12 07:04

それとtitle_enのフィールドタイプも追記してください。
HiroFumi

2017/12/12 07:34

>戻り値はどうなってますか?空の配列ですか? 以下になります。 $meta = get_post_meta(93, 'title_en', true); var_dump($meta); ↓ ' ' (length=0)
HiroFumi

2017/12/12 07:35

>それとtitle_enのフィールドタイプも追記してください。 追記しました。 よろしくお願いします。
退会済みユーザー

退会済みユーザー

2017/12/12 07:44

私の環境(WordPress 4.9.1, ACF 4.4.12)では正常に取得できたので処理自体に問題はないかなと思います バージョン周りかテーマや他のプラグインが影響してる可能性も否定できないです デフォルトテーマ(Twentyシリーズ)でプラグインをACF以外全て停止して試してみてください。 もしくは固定ページ・カスタムフィールド共に最初から作り直したら上手く行けたなんてこともありえます
guest

0

フィールドのタイプで出力コードが変わってくると思いますが…関係ないですかね
【WordPress】プラグイン Advanced Custom Fields の全フィールドの出力方法

投稿2017/12/12 06:02

kumiko

総合スコア48

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

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

HiroFumi

2017/12/12 06:54

ありがとうございます。 こちも試しましたが表示されませんでした。
kumiko

2017/12/12 12:01

<?php echo wp_get_attachment_url(get_post_meta(93,"title_en",true));?> もしくは <?php echo html_entity_decode(get_field('title_en',93)); ?> はどうでしょう
guest

0

Wordpressのループ内ならそのコードで表示されます。
ループ外なら第二引数にIDなどを与える必要があります。

PHP

1get_field($selector, [$post_id], [$format_value]);

https://www.advancedcustomfields.com/resources/get_field/

投稿2017/12/12 04:22

IShix

総合スコア1724

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

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

HiroFumi

2017/12/12 05:07

ありがとうございます。 以下のように試してみましたが、やはり何も表示されません。。 $value = get_field('title_en', 93); echo $value;
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問