在jQuery中使用PHP链接到存储在WordPress模板目录中的图像

时间:2011-07-26 18:46:41

标签: jquery wordpress

我正在努力解决这个问题。我基本上只是想在外部链接的末尾添加一个图像(external.png)。我将图像放在我的wordpress主题中存储的名为img的目录中。如果我对图像的src是直接的,它可以工作,但我宁愿使用:

<?php bloginfo('template_directory') ?>

当把它放到after()没有用时我尝试了这个:

$(document).ready(function() {
var templateDir = "<?php bloginfo('template_directory') ?>";
$('a').filter(function() {
return this.hostname && this.hostname !== location.hostname;
}).after('<img src="' + templateDir + '/img/external.png" />');

});

但这也不起作用。有任何想法吗?提前谢谢!

1 个答案:

答案 0 :(得分:0)

在wordpress中,将php变量插入javascript的正确方法是wp_localize_script()。在你的Functions.php(或插件,无论如何)。

<?php
$data = array( 'some_string' => __( 'Some string to translate' ) );
wp_localize_script( 'some_handle', 'object_name', $data );
?> 

调用时,wp_localize_script()创建一个全局JS对象,然后您可以在运行时检索变量(在客户端 - 使用Firebug检查JS dom以确保发生这种情况)。

<script>
alert(object_name.some_string); // alerts 'Some string to translate'
</script> 

关键是,您必须在服务器上定义PHP变量,然后才能在客户端使用它们。

或者,您可以使用ajax解决问题。 But the former solution is the preferred method in WP

干杯