私のプラグインmyplugin
にfoo
という名前で関数を作成しました。フロントエンドから呼び出すにはどうすればいいですか?
e.g. index.php?
他の人と同じように、
foo();
アクティブプラグインはテーマファイルの前にロードされます
あなたがあなたのプラグインが活性化されていることを確認したいかもしれません、そして、あなたがそれを活性化することを忘れるならば物事が梨形にならないように:
if(function_exists('foo')){
foo();
} else {
echo "oh dear you haven't activated/installed 'myplugin', go do that before the 'foo' feature is available";
}
また、foo
は非常に一般的な関数名です。おそらく "omgfoo"プラグインにもfoo
関数があります。だからあなたの関数にユニークな何かを接頭辞/名前空間を付ける
より安全でより良い習慣であるので、あなたは結局アクションとフィルタを使いたいと思うでしょう あなたはここでそれについて読み続けることができます
あなたはしません。テーマは非常に制御された環境を除いてプラグインに頼るべきではありません。代わりに アクションとフィルタ を使用してください。
だからあなたのテーマであなたが使うかもしれません:
do_action( 'before_header' );
…または…
$bg_options = array (
'wp-head-callback' => 't5_custom_background_frontend',
'default-color' => 'f0f0f0',
'default-image' => '',
);
$bg_options = apply_filters( 't5_theme_bg_options', $bg_options );
add_theme_support( 'custom-background', $bg_options );
add_action( 'login_head', $bg_options['wp-head-callback'] );
プラグインでは、add_action()
とadd_filter()
を使用して新しいコンテンツを変更または追加します。このようにして、テーマはプラグインが無効化されていてもfunction_exists()
を使う必要がなくても機能します。
アクティブなプラグインは(技術的には - それらのファイルは含まれるされ、WordPressのロード中にPHPで処理されるように)テーマテンプレートの実行時までにロードされます。
そのため、あなたの関数は利用可能であるべきであり、他の関数として呼び出すことができます。
<?php foo(); ?>
例えば。