wp_localize_script 用于插入图像

Posted

技术标签:

【中文标题】wp_localize_script 用于插入图像【英文标题】:wp_localize_script for inserting an image 【发布时间】:2016-09-09 15:36:02 【问题描述】:

我在使用 wp_localize_script 时遇到了一些问题。已经有很多关于这个的问题,但我不知道如何将它们实施到这个特定的案例中。我制作了一个 jQuery 文件,该文件在每个具有特定类的 div 之后包含一个图像。 jQuery 本身很好,因为我可以使用段落标签更改图像标签,然后它会显示在我的浏览器中。这是我在functions.php中的内容

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

【讨论】:

谢谢!我对 Wordpress 很陌生,所以我的代码可能与我在互联网上找到的答案相去甚远。两个答案都是正确的:)【参考方案2】:

您的变量 $script_data 在 js 文件中的语法不正确,并且您没有访问预定义的本地化变量 divider_data

代替:$('.contentpage').after('&lt;img src=" '$script_data' + divider_placeholder.png"&gt;'); );

应该是:

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

【讨论】:

以上是关于wp_localize_script 用于插入图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在js中使用wp_localize_script()变量作为变量? (不是字符串)

Wordpress / WooCommerce wp_localize_script 将 php 变量日期添加到 javascript

Before 或 Prepend 不适用于图像?

使用 Visual Studio 数据库项目的 PostDeployment 脚本插入图像

问:TYPO3 - RTE不包含“插入图像”按钮[关闭]

在最右侧的 navbarPage 上插入图像闪亮