不,那不行。当WordPress开始评估您内容中的短代码时,网站的负责人已经组装好了,因此您不能再向其添加操作。
查看execution order of hooks 为您提供如何执行此操作的线索。
首先,必须避免回显脚本。相当地wp_enqueue_script
(与wp_enqueue_style
) 是要避免脚本之间冲突的方法。由于脚本位于头部,因此您希望在wp_head
被调用。考虑到您需要从帖子中提取信息,您必须在WP知道此页面上的帖子之后进行连接。那个钩子是wp. 在这里,您必须预先评估帖子内容,以使用regex. 您的函数大致如下所示:
add_action (\'wp\', \'add_shortcode_script\');
function add_shortcode_script () {
global $post;
... use regex to scan $post->$post_content for your shortcode
... and extract $value2 and $value3
wp_enqueue_script (...vars based on $value2...);
wp_enqueue_style (...vars based on $value3...);
}
如果短代码指示添加css/js文件,则需要上面的代码。在您的示例中,您只添加了一个片段,这可能会改变主css/js文件的行为。这意味着您应该使用
wp_add_inline_script 和
wp_add_inline_style. 代码的后一部分则变成:
wp_enqueue_script (\'my_script\',\'http:/.../main.js\');
wp_enqueue_style (\'my_style\',\'http:/.../main.css\');
wp_add_inline_script (\'my_script\', $string_based_on_value2);
wp_add_inline_style (\'my_style\', $string_based_on_value3);