大家好!
这是我在stackoverflow上的第一篇文章。经过几个小时的搜索和试验,StackOverflow出现了很多可能的修复:我决定是时候自己提问了。 我正在构建一个Wordpress驱动的投资组合网站,用于我自己的网页设计工作。到目前为止,我已经做了一些广泛的定制,现在我正处于最后阶段。另请注意,我不希望直接插件支持,但我会引用正在使用的插件,它可能有所帮助。
前言
所有这一切都说明了我的目标是利用自定义字段插件,添加特定于每张幻灯片的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)
现在让我觉得非常有趣的是,如果我将$ clientname设置为像文本行一样静态的东西,那就是在gallery-popportfolio.php中。 .js文件将接受变量并将其准确放置在我需要的位置。问题是当我将这个动态字符串应用于$ clientname变量时,它根本不呈现任何内容。除此之外,当我用PHP文件中的复杂变量回显$ clientname时,我得到了正确的结果。
问题:
我很难过,我似乎很近但没有得到正确的结果。
我是否错过了让外部.js文件接受更复杂的php变量的步骤?
我是否有可能只需要移动我在别处写过的php代码?
我的下一个最佳步骤是什么?
备注:
我正在关注此主题以达到我现在所处的位置:StackOverflow Thread
我的投资组合网站位于:EoghanMcInerney.com
提前感谢您的帮助!非常感谢!
答案 0 :(得分:2)
如果你的意思是“不是一个字符串”的复杂变量,对于$ clientname,那么你的代码将不起作用。
在这行代码中:
<script type="text/javascript"> var clientname = '<?= $clientname ?>'; </script>
$clientname
应该是不带'
字符的字符串。我建议你将上面的代码更改为
<script type="text/javascript"> var clientname = <?= json_encode($clientname) ?>; </script>
当你追加时,你应该从clientname
构造一个字符串并追加它。