0

我在我的 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. 有没有比使用全局变量更好的方法,或者它们是唯一的方法。
4

2 回答 2

0

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

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

于 2012-08-18T06:04:53.090 回答
0

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

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

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

var LinkText = window["prettyName"];
于 2012-08-17T23:48:40.987 回答