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

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

 }

我认为上述过程是正确的,但那是行不通的。上面 func 中的两行在直接写入 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")
}

在Codex中可以找到更多信息。

于 2012-08-30T19:24:02.593 回答