0

大家好!

这是我在 stackoverflow 上的第一篇文章。经过数小时的搜索和试验,StackOverflow 提出了许多可能的修复方法:我决定是时候自己提出这个问题了。我正在为我自己的网页设计工作构建一个由 Wordpress 提供支持的投资组合网站。到目前为止,我已经进行了一些广泛的定制,现在我正处于最后阶段。另请注意,我不希望直接支持插件,但我会引用正在使用的插件,它可能会有所帮助。

前言:

  1. 我正在使用一个名为 NextGen Gallery 的插件,这个插件为我的作品集提供了动力。我所有的客户都有自己的画廊,我在投资组合网站上展示。
  2. 我还为 Wordpress 安装了一个名为 Fancybox 的插件。这个插件可以让我所有的客户看起来很好看的灯箱显示。
  3. 我有第三个插件,称为 NextGen Gallery 的自定义字段,该插件允许我添加特定于每个图库和图像的自定义字段。您会看到我已经通过通过自定义字段插件添加的链接创建自定义缩略图来利用它。

话虽如此,我的目标是利用自定义字段插件,为每张幻灯片添加 html 富描述文本和 html 富客户端标题文本。幻灯片顶部显示客户名称,幻灯片下方显示带有链接的描述。我已经取得了一些进展,但这是我卡住的地方......

问题:

jquery.fancybox.js 不会采用“NextGen Custom Fields”插件生成的我的 PHP 变量,因为它被写入一个名为 gallery-popportfolio.php(NGG 的模板文件)的文件中。我已经对此进行了广泛的测试并得到了相同的结果。添加了一些简单的代码位:

在gallery-popportfolio.php 我把这个:

<?php $clientname = nggcf_get_gallery_field($gallery->ID, "clientnamelink"); ?>
<script type="text/javascript"> var clientname = '<?= $clientname ?>'; </script>
<script type="text/javascript" src=".../jquery.fancybox.js"></script>

在 jquery.fancybox.js 我插入这个:(这是一个摘录,我唯一添加的是 .append(clientname):

append('<div class="fancybox-bg" id="fancybox-bg-n">').append(clientname)

现在让我觉得这很有趣的是,如果我在 gallery-popportfolio.php 中将 $clientname 指定为像一行文本一样的静态内容。.js 文件将接受该变量并将其准确放置在我需要的位置。问题是当我将此动态字符串应用到 $clientname 变量时,它根本不呈现任何内容。除此之外,当我使用 PHP 文件中的复杂变量回显 $clientname 时,我得到了正确的结果。

问题:

我被难住了,我似乎如此接近但没有正确的结果。

我是否错过了使外部 .js 文件接受更复杂的 php 变量的步骤?

我是否可能只需要将我在其他地方编写的 php 代码移动?

我的下一个最佳步骤是什么?

笔记:

我一直在关注这个线程以达到我现在的位置:StackOverflow Thread

我的工作组合网站位于:EoghanMcInerney.com

提前感谢您的帮助!非常感激!

4

1 回答 1

2

如果您的意思是复杂变量的“不是字符串”,对于 $clientname,那么您的代码将不起作用。

在这行代码中:

<script type="text/javascript"> var clientname = '<?= $clientname ?>'; </script>

$clientname应该是没有'字符的字符串。我建议您将上面的代码更改为

<script type="text/javascript"> var clientname = <?= json_encode($clientname) ?>; </script>

当你追加时,你应该构造一个字符串clientname并追加它。

于 2012-05-17T23:16:48.057 回答