我需要能够将一些PHP插入到外部.js文件中。这可能吗?我使用基本滑块创建了一个滑块,并且需要将页面标题作为标记位于滑块的顶部。
这是.js文件用于生成当前标记的代码。
var slidenum = key + 1,
var marker = $('<li><a href="#">'+ slidenum +'</a></li>');
我需要用WordPress函数'get_title'替换'+ slidenum +'。这可以用PHP替换吗?
答案 0 :(得分:1)
您可以在php文件中定义JS变量,然后在外部js中使用这些变量。
例如,在您的一个PHP文件中,您可以添加:
<script type="text/javascript">
// variable1 = number
variable1 = <?php echo $var1; ?>;
// variable2 = string
variable2 = "<?php echo $var2; ?>";
</script>
对于你的问题:
<script type="text/javascript">
slidenum = "<?php the_title(); ?>";
</script>
the_title()参考:http://codex.wordpress.org/Function_Reference/the_title
更新 - 循环:
<?php
$slider_titles = array();
if ( have_posts() ) : while ( have_posts() ) : the_post();
// your codes go here
$slider_titles[] = get_the_title(); // adds the title to the array
endwhile; endif;
?>
<script type="text/javascript">
slidenum = <?php echo json_encode($slider_titles); ?>;
</script>
当你的循环结束时,你添加了javascript部分
答案 1 :(得分:1)
有些人试图告诉你使用Ajax。在这种情况下,这不是解决方案。该变量在页面加载的生命周期内是静态的,因此需要继续返回服务器以获取值。
其他人建议将服务器设置为将PHP文件解析为PHP,以便可以将PHP代码嵌入其中。这也不是一个好的答案,因为您将失去所有浏览器缓存JS文件的能力,这会降低您的网站速度并增加带宽成本。
解决方案只是将单个JS代码块添加到页面标题中 - 即在页面模板中添加一个小<script>
标记,设置相关变量。
然后,您可以在页面中其他位置运行的任何JS代码中将该变量作为全局访问。
答案 2 :(得分:0)
是的,你可以用get_title替换slidenum。 不,你不能用javascript或运行时这样做。你需要使用AJAX。
答案 3 :(得分:0)
不直接。你可以通过一些箍来完成它。
问题是.js根本不会被PHP解释。
所以,如果你必须,你可以使用mod_rewrite等来假装你的php脚本实际上是一个.js。
或者将PHP中的js文件完全写入文件系统。
或者使用XHR(Ajax)获取特定值。
答案 4 :(得分:0)
另一种解决方案,不是最好的恕我直言,是告诉Apache将js文件解析为php文件。只需将它放在.htaccess文件中:
AddType application/x-httpd-php .js
AddHandler x-httpd-php5 .js
<FilesMatch "\.(js|php)$">
SetHandler application/x-httpd-php
</FilesMatch>