我创建了一个新的 WordPress 主题。当我将其移至 IIS Web 服务器时,它失败了。
这是我的代码:
<?php get_header(); ?>
<h2><?php the_title();?></h2>
<div class="infoBox" id="infoTxt">
<?php
if(get_the_title() == 'Home'){
$page = get_page_by_title( get_the_title());
$Pagecontent = apply_filters('the_content', $page->post_content);
$ContentArray = explode(";",$Pagecontent);
echo $ContentArray[count($ContentArray) -1];
<script type="text/javascript">
var info = <?php echo json_encode($ContentArray) ?>;
document.getElementById('infoTxt').innerHTML = info[1];
setInterval(function()
{
var i = Math.round((Math.random()) * info.length);
if (i == info.length) --i;
document.getElementById('infoTxt').innerHTML = info[i];
}, 5 * 1000);
</script>
<?php
}
else{
$page = get_page_by_title( get_the_title());
$content = apply_filters('the_content', $page->post_content);
$InfoboxStr = substr($content, 0, strpos($content, '@:'));
echo $InfoboxStr;
}
?>
</div><!--End InfoTxt-->
<div id="Flagbox">
<ul style="list-style-type:none;">
<li><a href="www.google.dk"><img class="flagContainer" alt="English" src="<?php bloginfo('stylesheet_directory'); ?>/img/GbFlag.png""/></a></li>
<li><a href="www.google.dk"><img class="flagContainer" alt="Deutsch" src="<?php bloginfo('stylesheet_directory'); ?>/img/GmFlag.png""/></a></li>
<li><a href="www.google.dk"><img class="flagContainer" alt="French" src="<?php bloginfo('stylesheet_directory'); ?>/img/FrFlag.png""/></a></li>
</ul>
</div> <!-- end Flag Box-->
<div style="margin-bottom:25%;">
</div>
<?php get_footer(); ?>
这是因为 JavaScript,但我在修复此问题时遇到了一些问题,我首先尝试回显 JavaScript,但随后脚本的第一行出现问题,即:var info = <?php echo json_encode($ContentArray) ?>;
当我离开时。尝试过
Echo 'var info = ' + echo json_encode($ContentArray) ?> + ";"
我刚刚收到 http 500 错误。你们中有人知道我可以尝试解决我的问题吗
最佳答案
如果您想使用<Script>
标签,你需要关闭php标签,在这里:
echo $ContentArray[count($ContentArray) -1];
<script type="text/javascript">
所以它应该看起来像这样:
?>
<script>
[..]
</script>
<?php
最佳实践是,您应该将 JS 放在文件的顶部或底部,或者放在另一个文件中。
关于PHP 中的 JavaScript(wordpress),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39689828/