2017-11-02 23 views
0

私はこのコードを持っていますが、$ var1は私の関数に空になっています。なぜ、関数内で変数を宣言してテストしましたが、関数の外でそれを宣言しようとすると、do_actionが動作しないパラメータとして渡します。これに関する洞察はありますか?おかげでdo_actionとadd_actionを使って関数に引数を渡すことはできません

add_shortcodeは、あなたがそれはwordpressの作り付けのアクションのないdo_action('wp_enqueue_scripts');でき

$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); 
+0

(これは$var1を想定し、もちろんですが、あなたが文脈のための十分なコードを提供していないので、それはあなたに正確な答えを出すのは難しい...この関数の前にどこかのスクリプトで宣言されています)ここでやる? – Spartacus

+0

Im triyngは変数$ var1を関数shorcode_resources()の引数として渡します。ご意見ありがとう –

+0

$ var1はどこで宣言されていますか? – Spartacus

答えて

0

正常に動作します。

以下のコードスニペットをご覧ください。

<?php 
function shorcode_resources() { 

    $var1 = "link"; 

    global $post; 
    $shortcode_found = false; 

    if (has_shortcode($post->post_content, $var1)) { 
     wp_enqueue_style('core', ABS_URL . '/shortcode/css/flipbox.css', false); 
     wp_enqueue_script('my-js', ABS_URL . '/shortcode/js/flipbox(' . $var1 . ').js', false); 
    }  

} 

$name = "link"; 
add_shortcode($name, 'aa_link_shortcode'); 
add_action('wp_enqueue_scripts', 'shorcode_resources', 10); 
+0

しかし、あなたは関数shorcode_resources()の引数として$ var1変数を渡していません。それは私がやりたいことです。そのため、wordpressにdo_action()を追加する理由は、引数を関数に渡す方法ですadd_action、あなたが私を助けてくれてありがとうと、あなたのコメントのためにありがとう –

+0

wp_enqueue_scriptsアクションは何も引数を受け付けません。 –

0

マレー語Solankiが正しく、あなたはこの文脈でdo_actionを使用すべきではありません。あなたのPHP関数にスコープ$var1が必要です。正確にあなたがしようとしている何

$var1 = 'foo'; 
$name="link"; 
    add_shortcode($name, 'aa_link_shortcode'); 

    function shorcode_resources() { 
     global $post,$var1; 
     $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); 
     } 

    } 

add_action('wp_enqueue_scripts', 'shorcode_resources'); 
関連する問題