2016-11-14 16 views
2

ACFプラグインが無効になっている、またはインストールされていない場合、私のテーマにfatal errorが表示されないようにします。WordPress:プラグインがインストールされているか確認する(ACF)

プラグインの主な機能はget_field()です。 私がチェックするために私のfunctions.phpでこのコードを書いた:

if (!function_exists('get_field')) { 
    function get_field() { 
    echo '<span>plugin ACF is not installed</span>'; 
    } 
} 

これは許容練習です教えてください?

答えて

2

まず、これは主なプラグイン機能ではなく、そのうちの1つです。おそらく、主にテーマのプラグインユーザーによって使用されます。もう1つはthe_field()で、実際に値(get_field()が返されます)が表示されます。

カスタム関数の定義については問題ありません。しかし、私はACFフィールドが期待されるあらゆる場所で長いメッセージを印刷しません。そのうちのいくつかは短い(数字)かもしれません。このメッセージはレイアウトを破るでしょう。短いものを印刷する方がいいですよね。

また、function_existsは、is_plugin_activeではなく、適切なチェックです。ACFは、テーマフレームワークやその他のプラグインを使用してライブラリとして出荷することもできます。

また、フロントエンドでのACF依存関係を完全に削除することもできます。フィールドの内容をget_post_meta()で出力し、ACFプラグインがフロントエンドに完全にロードされないようにすることができます。詳細については、これら2つのポストを参照してください。

http://www.billerickson.net/code/disable-acf-frontend/

http://www.billerickson.net/advanced-custom-fields-frontend-dependency/

+0

それは本当にクールです!私は決して自分自身でこれを考えなかったでしょう。今度はコードを少し上手く書くつもりです。あなたの経験に感謝します! – Joe

1

はい、プラグイン機能が存在するかどうかを確認するには良い方法です。

また、is_plugin_active関数を試して、プラグインが有効かどうかを確認することもできます。これは、関数をどこかで再宣言できるためです。

あなたが主な理由は致命的なエラーを防ぐことだと思いますので、どのように使用できるかは関係ありません。

+0

ACFがテーマのフレームワークや他のプラグイン内のライブラリとして出荷することができます。 'function_exists()'はより安全な方法です。 –

+0

正しいですが、テーマフレームワークや他のプラグイン内のライブラリの場合は、テーマや別のプラグインによってアクティブになることが予想されます。 –

関連する問題