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

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

ただいまの
回答率

91.23%

  • PHP

    15727questions

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

  • WordPress

    5030questions

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

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

受付中

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 141

HiroFumi

score 3

前提

プラグイン(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)

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

+2

get_post_meta()は試しましたか?

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

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

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


出力結果

string(5) "VOICE"

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/12 15:54

    ありがとうございます。
    上記でも他同様になにも表示されませんでした。。


    以下で他のフィールドの値は取得出来る、title_en は値はあるのに取得できないのが謎です。。
    $fields = get_post_custom();
    $val = $fields['フィールド名'][0];
    echo $val;

    キャンセル

  • 2017/12/12 16:02

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

    キャンセル

  • 2017/12/12 16:04

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

    キャンセル

  • 2017/12/12 16:34

    >戻り値はどうなってますか?空の配列ですか?
    以下になります。

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

    ' ' (length=0)

    キャンセル

  • 2017/12/12 16:35

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

    よろしくお願いします。

    キャンセル

  • 2017/12/12 16:44

    私の環境(WordPress 4.9.1, ACF 4.4.12)では正常に取得できたので処理自体に問題はないかなと思います
    バージョン周りかテーマや他のプラグインが影響してる可能性も否定できないです
    デフォルトテーマ(Twentyシリーズ)でプラグインをACF以外全て停止して試してみてください。

    もしくは固定ページ・カスタムフィールド共に最初から作り直したら上手く行けたなんてこともありえます

    キャンセル

+1

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/12 14:07

    ありがとうございます。
    以下のように試してみましたが、やはり何も表示されません。。

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

    キャンセル

+1

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/12 15:54

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

    キャンセル

  • 2017/12/12 21:01

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

    キャンセル

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

ただいまの回答率

91.23%

関連した質問

同じタグがついた質問を見る

  • PHP

    15727questions

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

  • WordPress

    5030questions

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