0
 add_action("publish_post", "php_func");

 function php_func(){
     wp_register_script("customscript","link to js file");
     wp_enqueue_script("customerscript")

 }

上記のプロセスは正しいと思いますが、うまくいきません。上記の func の 2 行は、php ファイルに直接 (アクションなしで) 記述すると正常に動作しますが、アクションを使用すると、上記は動作しません。

 function php_func(){
     echo "<script>alert("hiii");</script>"; //working but not good method. Also, getting errors like headers sent already .
 } 
4

1 に答える 1

0

すべてのアクションは特定のフックに登録されます。コードでそのフックに到達すると、そのフックに登録されているすべてのアクションが実行されます。

投稿を公開すると、publish_postフックが関数を実行し、JavaScriptをエンキューします。

問題は、コードがキューに入れられたすべてのスクリプトをループして実行し、すでに実行されていることです。

以前のフックにそれらをエンキューする必要があります。そして、このための特定のフックビルドはと呼ばれwp_enqueue_scriptsます。

add_action("wp_enqueue_scripts", "php_func");

function php_func(){
    wp_register_script("customscript","link to js file");
    wp_enqueue_script("customerscript")
}

コーデックスにはさらに多くの情報があります。

于 2012-08-30T19:24:02.593 に答える