Javascript from PHP (wordpress)

Javascript from PHP (wordpress)

本文关键字:wordpress PHP from Javascript      更新时间:2023-09-26

我新建了一个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-error。你们谁知道我该怎么解决这个问题?

如果你想使用<Script>标签,你需要关闭php标签,在这里:

echo $ContentArray[count($ContentArray) -1];    
        <script type="text/javascript">

应该是这样的

?>
<script>
[..]
</script>
<?php

最好的做法是你应该把JS放在文件的顶部或底部,或者放在另一个文件中。

问题是你在进入<Script>块之前没有关闭PHP标签…换句话说;当您编写Javascript时,您仍然处于PHP模式,就像在普通HTML文档上编写一样。当然,您可以通过PHP输出Javascript,但随后,您可能需要构建它。

给你一些可能有用的东西:::

<?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(); ?>