functions.php
からプラグインに情報を渡すための最善の方法は何ですか?
passデータの一部from彼らのfunctions.php
ファイルtomy plugin。 (それはどんなデータでもかまいません。私が確認できるものです。変数の値でも、変数が設定されていたり、関数が定義されていたという事実でもかまいません。)
私はここで見つけた提案を試みました:
そのコードを逐語的に接続しました。
あなたのプラグインで:
$value = 0;
$value = apply_filter('get_value_from_function', $value);
それからfunctions.php
に
add_filter('get_value_from_function', 'my_special_value_treatment', 10, 1);
function my_special_value_treatment ($value){
return 1;
}
しかし、それはエラーになります。
致命的なエラー:93行目の/pathtomyplugin/my-plugin-name/my-plugin-name.phpにある未定義の関数apply_filter()を呼び出す
それがなぜ失敗するのか理解できません。これを行うための最良の方法は何ですか?
この追加で編集されました:
それをapply_filters()
に変更した後、これはまだ起こります...私のプラグインで:
$value = 0;
$value = apply_filters('get_value_from_function', $value);
if ($value===0) {
$test_info = 'not_passed';
} else {
$test_info = 'passed';
};
// $test_info is not_passed
テーマの前にプラグインがロードされます。つまり、あなたのapply_filters
には実際のコールバックは登録されません。代わりに、テーマがロードされた後にいつかあなたのapply_filters
を呼び出す必要があります。このようなもの:
/* Your plugin's file: */
add_action( 'init', 'my_lovely_funky_filters' );
function my_lovely_funky_filters() {
/* Fire our callbacks */
$value = 0;
$value = apply_filters( 'get_value_from_function', $value );
/* Check your $value now */
/* echo "<pre>{$value}</pre>"; */
}
/* Your functions.php file */
add_filter( 'get_value_from_function', 'my_special_value_treatment', 10, 1 );
function my_special_value_treatment( $value ) {
/* A little more interesting */
return (int)$value + 1;
}
これは正しい方法です - 関数がapply_filterではなくapply_filters
であることを除いて。だからあなたのエラーです。