2016-09-25 4 views
1

新しいWordPressテーマを作成しました。 IIS Webサーバーに移動したときに失敗します。PHP(wordpress)の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(); ?> 

はそれがためにはJavaScriptのですが、私はこれを修正いくつかの問題を抱えている、私が最初にすべてのJavaScriptをエコーし​​ようとしましたが、私は、最初の行との問題を抱えてこのスクリプトの内容は次のとおりです。var info = <?php echo json_encode($ContentArray) ?>;

試みました

Echo 'var info = ' + echo json_encode($ContentArray) ?> + ";" 

私はちょうどhttp 500エラーを取得しました。あなたのうちのどれかは、あなたが<Script>タグを使用する場合は、ここでは、PHPのタグを閉じる必要があり、私は私の問題

答えて

1

を修正しようとすることができるかのアイデアを持っていますか:

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

だからべきそのように見えます:

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

JSをファイルまたは別のファイルの上部または下部に配置することをお勧めします。

+0

おかげで、私はIFループの内側に – Sander

0

問題は、<Script>ブロックを入力する前にPHPタグを閉じなかったということです。通常のHTMLドキュメントに書いているかのようにJavascriptを書いたときにPHPモードになっていました。もちろん、JavascriptをPHP経由で出力することもできますが、それを構築する必要があります。ここで

あなたが助けるかもしれない何かで行く:::

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

感謝をPHPタグを閉じて考えていませんでした!あなたが正しいです、私はIFの中の<?phpタグを閉じることができないと思いました。あなたは私の夜を作りました – Sander