我有这段代码,$var1到达我的函数时是空的,我不知道为什么,我已经测试过在函数内声明变量,它确实有效,但是当我尝试在函数外声明它并将其作为参数传递给do\\u操作时,它不起作用,对此有什么见解吗?谢谢
add\\u短代码工作正常
$name="link";
add_shortcode($name, \'aa_link_shortcode\' );
function shorcode_resources($var1) {
global $post;
$shortcode_found = false;
if ( has_shortcode($post->post_content, $var1) ) {
$shortcode_found = true;
}
if ( $shortcode_found ) {
wp_enqueue_style( \'core\', ABS_URL . \'/shortcode/css/flipbox.css\' , false );
wp_enqueue_script( \'my-js\',ABS_URL . \'/shortcode/js/flipbox(\'.$var1.\').js\', false );
}
}
do_action( \'wp_enqueue_scripts\', $name);
add_action( \'wp_enqueue_scripts\', \'shorcode_resources\', 10, 1 );
最合适的回答,由SO网友:David Lee 整理而成
你正在做do_action
在添加操作之前,请尝试将其移动:
$name = "link";
add_shortcode($name, \'aa_link_shortcode\');
function shorcode_resources($var1) {
global $post;
$shortcode_found = false;
if (has_shortcode($post->post_content, $var1)) {
$shortcode_found = true;
}
if ($shortcode_found) {
wp_enqueue_style(\'core\', ABS_URL . \'/shortcode/css/flipbox.css\', false);
wp_enqueue_script(\'my-js\', ABS_URL . \'/shortcode/js/flipbox(\' . $var1 . \').js\', false);
}
}
//first we add the action
add_action(\'wp_enqueue_scripts\', \'shorcode_resources\', 10, 1);
//then we do the action
do_action(\'wp_enqueue_scripts\', $name);
还要记住
wp_enqueue_scripts
这是WP也会触发的动作
SO网友:Erica
我并不确定这段代码的意图,但问题很可能是您正在尝试更改内置挂钩。wp_enqueue_scripts 是不接受任何参数的实际WordPress挂钩。即使您声明您通过了一个,当WP运行其wp_enqueue_scripts 胡克,它会忽略它的。也许可以尝试改用全局变量。
$shortcode_name="link";
add_shortcode($shortcode_name, \'aa_link_shortcode\' );
function shorcode_resources() {
global $post, $shortcode_name;
$shortcode_found = false;
if ( has_shortcode($post->post_content, $shortcode_name) ) {
$shortcode_found = true;
}
if ( $shortcode_found ) {
wp_enqueue_style( \'core\', ABS_URL . \'/shortcode/css/flipbox.css\' , false );
wp_enqueue_script( \'my-js\',ABS_URL . \'/shortcode/js/flipbox(\'.$shortcode_name.\').js\', false );
}
}
add_action( \'wp_enqueue_scripts\', \'shorcode_resources\', 10 );