web-dev-qa-db-ja.com

ACFを使用して全ページにデータを表示する

Advanced Custom Fielts をインストールし、email、phoneなどのカスタムフィールドを作成しました。これらのフィールドをfooter.phpに入れて、データはホームページにのみ表示されます。 ACFを使用してグローバル変数を作成できますか?そのカスタムフィールドに対する私のルールは'If Post Type is equal to post';です

このようなデータをfooter.phpに入れます

$phone_number = get_field('phone_number');

そしてImはそれを好きなように表示する

<?php echo $phone_number; ?>

つまり、基本的に私のホームページでImを使っても正しく表示されます。他のページ(同じフッターを使っているページ)に行ってもデータは表示されません。すべてのページに表示するにはどうすればいいですか。

1
BrS

ACFオプションページ pluginも使用する必要があります。

オプションページ機能は、追加の管理ページを追加する一連の機能を提供し、オプションページに保存されるすべてのデータは global です。

Sea the plugin 概要

プラグインをインストールした後、あなたはfunctions.phpに以下を追加しなければなりません

if( function_exists('acf_add_options_page') ) {

    acf_add_options_page();

}

管理領域に "Options"ラベルが表示されます。

それなら'If Options Page is equal to Options'のような規則でacfフィールドを作成するだけです。

最後にフィールドを表示します。

echo get_field('phone_number', 'option');
2
Narek Zakarian

他のユーザーがグローバルオプションの作成について言及しているように、 ACFオプションページ add-onまたは ACF PRO が必要です。これにより、Niceオプションページを作成して標準的な方法でフィールドを再検索することができます。

$phone_number = get_field( 'phone_number', 'option' );

ただし、すべてのページで自分のフィールドを再検索するために使用できるトリックがあります。

あなたのオプションがホームページでのみ機能している場合、私はあなたがあなたのホームページ管理ページでカスタムフィールドを作成したと思います。他のページのこのフィールドを再検索するには、2番目の引数としてあなたのホームページIDを渡します。

$homepage_id = get_option('page_on_front');

$phone_number = get_field( 'phone_number', $homepage_id );
2
kierzniak

これは、フィールド値をpost_meta値として設定しているからです。

達成しようとしていることを達成するには、オプションページを作成する必要があります。参照してください: https://www.advancedcustomfields.com/resources/options-page/

それはあなたがグローバルにデータを表示することを可能にするでしょう。

0
Daniel Fonda