2016-05-13 22 views
1

wp_localize_scriptに問題があります。これについて既に多くの質問がありますが、私はこの特定のケースにそれらを実装する方法を知らない。特定のクラスを持つすべてのdivの後にイメージを含むjQueryファイルを作成しました。私は段落タグでイメージタグを変更することができ、それが私のブラウザに表示されるので、jQuery自体は問題ありません。ここで私はのfunctions.phpにイメージを挿入するためのwp_localize_script

function wpa_scripts() { 
wp_enqueue_script(
    'divider', 
    get_template_directory_uri() . '/js/divider.js', 
    array('jquery'), 
    null, 
    true 
); 
$script_data = array(
    'image_path' => get_template_directory_uri() . '/images/' 
); 
wp_localize_script(
    'divider', 
    'divider_data', 
    $script_data 
); } add_action('wp_enqueue_scripts', 'wpa_scripts'); 

そして、ここでは私の.jsに持っているもの

jQuery(document).ready(function($){ 

$('.contentpage').after('<img src=" '$script_data' + divider_placeholder.png">'); }); 

だてきたものだ、私は誰も私が間違って何をしたか教えてもらえますか?前もって感謝します。

敬具、 ステフ

答えて

1

はあなたのjQueryの機能に'divider_data.image_path'代わりの$script_dataを持っている必要があります:

jQuery(document).ready(function($){ 

    $('.contentpage').after('<img src="' + divider_data.image_path + 'divider_placeholder.png">'); 

}); 

参考:https://codex.wordpress.org/Function_Reference/wp_localize_script

+0

ありがとうございます!私はWordpressにはかなり新しいので、私のコードはインターネットで見つけた答えの忌まわしいものかもしれません。両方の答えが正しいです:) – Stef

1

あなた$script_dataは、あなたがアクセスしていないだけでなく、あなたのjsファイルで右構文ではない変数、あなたの定義済みの変数divider_dataローカライズ:

の代わりに:
$('.contentpage').after('<img src=" '$script_data' + divider_placeholder.png">'); });

それは次のようになります。

$('.contentpage').after('<img src="' + divider_data.image_path + 'divider_placeholder.png">'); }); 
関連する問題