web-dev-qa-db-ja.com

含まれているphpファイルからwp_enqueue_scriptsを使う

ここでは本当に髪の毛を引っ張る問題があります。

私が作ったプラグインを整理し、diffrentファイルの中のいくつかの機能をソートし始めました。

しかし、私はwp_enqueue_scriptsに問題があります。

私が登録してメインのphpファイルにエンキューし、そこから自分のスクリプトをエンキューしようとする関数を配置すると、それはそれがあるべきように動作する

ただし、関数を異なるphpファイルに移動し、そのファイルからエンキューしてメインのphpファイルからこのphpファイルを含めようとしても、何も起こりません。ただし、このphpファイルの他の機能はすべて正常に機能します。

私はそこからそれをアンキューすることができるように私の他のphpファイルからwordpressの関数を呼び出す必要がありますか?

編集:

私のメインのphpファイルに以下のように配置して関数を呼び出すと、それは魅力のように機能し、jsファイルはFirefoxで検索したときに頭に表示されます。

function scripts() { 
wp_register_script( 'load_table', plugins_url( 'path/js/load_table.js', __FILE__ ), array( 'jquery' ) );

wp_enqueue_script( 'load_table' );
}

add_action( 'wp_enqueue_scripts', 'scripts' );

しかし、私が以下のようにそれを書き込もうとしても何も起こらず、それはどちらかの頭の中で見つけることができない

main.php:

include'path/to/other.php';

other.php:

function scripts() { 
wp_register_script( 'load_table', plugins_url( 'vagt_oversigt/js/load_table.js', __FILE__ ), array( 'jquery' ) );

wp_enqueue_script( 'load_table' );
}


add_action( 'wp_enqueue_scripts', 'scripts' );

私はother.php上の関数とフックを使用するときに問題が起こっているようです

other.phpのecho "hello world";だけで、魅力的に動作します。

しかし、initによって関数内でechoを呼び出そうとしても、何も起こりません。

other.php:

function test() {

echo "hello world";
}
add_action('init', 'test');

ところで!はい、成功せずにパスを変更してみました。何か案は? :(

1
Alexander

私は問題を見つけました....

私はmain.phpを以下のように実行しました。

function run_this(){

include'path/to/other.php';
}
add_shortcode('shortcode', 'run_this');

そしてother.phpの内容の大部分は、フックがうまくいかなかったことを思いついた後、私はadd_action('init', 'run_this');を使ってみました、それからそれはうまくいきました。

1
Alexander

エンキューコードを関数内に配置し、add_actionを使用して登録先の関数を呼び出す必要があります。

以下のように

add_action( 'wp_enqueue_scripts', 'your_function_name', 10 );
0
Harry