如何将标头中的全局变量加载到外部Javascript FIle中


How to Load Global Varables in header into External Javascript FIle

我在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. 如何将标题中设置的全局变量.php调用到漂亮的照片.js文件中
  2. 如何编写一个将使用这些变量并输出上面所示的 HTML 的函数。
  3. 有没有比使用全局变量更好的方法,或者它们是唯一的方法。

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

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

但是,如果您需要访问已加载的脚本,并且您位于该脚本内部,那么您可以通过窗口访问它

var LinkText = window["prettyName"];

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

此处的教程应该可以帮助您入门。http://betterwp.net/wordpress-tips/script-localization/