2011-01-13 14 views
2

私は、サイトが正しく機能するためにはプラグインに依存しているWordpressサイトを開発しています。Wordpressのプラグイン関数:関数が存在するかどうかを確認してください。

プラグインには、サイトのテンプレートファイルで使用している便利な機能がいくつかあります。プラグインがアクティブな場合、すべてが完全に機能します。プラグインが無効になっている場合、コンテンツは読み込まれません。

if(function_exists(...)でこれらの機能をラップすると、明らかにそれが修正されますが、Wordpressでこれを行うためのよりクリーンな方法があるのだろうかと思います。これらの関数が呼び出されるたびに利用可能かどうかを確認できるテーマのfunctions.phpファイルに配置できる関数はありますか?function_exists()でそれらを囲まなければ安全なフォールバックを提供しないのですか?

ありがとうございました。

答えて

0

これは最も明確な方法だと思います。すべての問題を防ぎます。私はあなたがそれらを呼び出すたびにこれらの関数が利用可能かどうかを確認できる関数を書くことができると思うが、それはあなたにもっと問題を引き起こす可能性があり、if(function_exist())を使用して、 elseブランチを忘れないでください。うまく動作します。

3

控えめに(1〜2回)使用している場合は、if(function_exists())を使用してください。あなたが別のテンプレートファイル中に数回の関数を呼び出している場合は、私はその後、あなたのテンプレートでmytheme_related_posts()を使用し、あなたのfunctions.phpで

function mytheme_related_posts($someparams = nil) { 
    if(function_exists('related_posts')) { 
    related_posts($someparams); 
    } else { 
    echo 'Please enable related posts plugin'; 
    } 
} 

のようなものを使用してお勧めしたいです。

+0

私はこのようにすることは考えませんでした。完璧に動作します、ありがとう! – Adam

+2

これがあなたの質問に答えると思うなら、あなたはこれを正しい答えとしてください:) – Dogbert

0

を確認したい場合は、プラグインが有効になっているならば、あなたはis_plugin_active()機能を使用する必要があります - あなたはでドキュメントを見つけることができます:http://codex.wordpress.org/Function_Reference/is_plugin_active

そのあとも、同様ばかりの場合(function_exists())を使用することができます二重に確認してください:)

関連する問題