如何将标题中的全局变量加载到外部Javascript文件中

时间:2012-08-17 23:40:24

标签: php javascript html wordpress global-variables

我在Wordpress帖子上创建了元数据键,如下所示:prettyAd,prettyName,prettyLink。我想获取每个键的值并将其加载到我站点标题中的全局变量中。

我在我的WordPress主题标题中设置全局变量,如下所示......

<script type="text/javascript">
    var prettyAd = "<?php echo get_post_meta($post->ID, 'prettyAd', true); ?>";
    var prettyName = "<?php echo get_post_meta($post->ID, 'prettyName', true); ?>";
    var prettyLink = "<?php echo get_post_meta($post->ID, 'prettyLink', true); ?>";
</script>

加载页面时会输出以下信息......

<script type="text/javascript">
    var prettyAd = "http://mydomainname.com/ad-placeholders/ad.png";
    var prettyName = "Pet Store Shop";
    var prettyLink = "http://mydomainname.com/advertise/";
</script>

之后,加载了一个外部JavaScript文件(prettyphoto.js - 版本3.1),我想访问上面设置的变量。

<script type="text/javascript" src="http://mydomain.com/wp-content/themes/wpnavigator/scripts/prettyphoto.js"></script>

一旦上述文件可以访问变量,我想将它们加载到我引用它们的下面的html中。

<p>
    Sponosor: <a href="var prettyLink" target="_blank">var prettyName</a>
</p>
<p>
    <a href="var prettyLink" target="_blank">
        <img src="var prettyAd" width="468" height="60" alt="Sponsors Ad" />
    </a>
</p>

根据我的理解,我需要让JavaScript编译整个标记,因为我无法直接加载变量作为src和href值。

所以我正在寻求帮助的是以下内容。

  1. 如何将header.php中设置的全局变量调用到prettyphoto.js文件中
  2. 如何编写将使用这些变量的函数并输出上面显示的HTML。
  3. 有没有比使用全局变量更好的方法,或者它们是唯一的方法。

2 个答案:

答案 0 :(得分:0)

在html中,一个非常简单的方法就是这样:

<p>
 Sponosor: <script type="text/javascript">document.write('<a href="' + prettyLink + '" target="_blank">' + prettyName + '</a>');</script>
</p>

但是,如果您需要在已加载的脚本中进行访问,并且您在该脚本中,那么您可以通过窗口访问它

var LinkText = window["prettyName"];

答案 1 :(得分:0)

我通常使用wp_localize_script来做这种事情。它的优点是将不同的js变量包装到一个单一的全局访问点中。

这里的教程应该让你入门。 http://betterwp.net/wordpress-tips/script-localization/