2011-12-14 10 views
-1

私はDreamweaverを使用しています。 4行目から何かが間違っていると私に伝えています。それは私に有用な何かを教えてくれません。私の構文が間違っていますか?PHP else if文の構文が正しく表示されないようです

<title> 
<?php //storefront_title(); ?> 
<?php if (is_front_page()) { ?><?php bloginfo('name'); ?>&nbsp;|&nbsp;<?php bloginfo('description'); ?><?php } ?> 
<?php else if (is_home()) { ?><?php bloginfo('name'); ?>&nbsp;|&nbsp;<?php bloginfo('description'); ?> <?php } ?> 
<?php else if (is_search()) { ?><?php bloginfo('name'); ?>&nbsp;|&nbsp;Search Results<?php } ?> 
<?php else if (is_author()) { ?><?php bloginfo('name'); ?>&nbsp;|&nbsp;Author Archives<?php } ?> 
<?php else if (is_single()) { ?><?php wp_title(''); ?>&nbsp;|&nbsp;<?php bloginfo('name'); ?><?php } ?> 
<?php else if (is_page()) { ?><?php bloginfo('name'); ?>&nbsp;|&nbsp;<?php wp_title(''); ?><?php } ?> 
<?php else if (is_category()) { ?><?php bloginfo('name'); ?>&nbsp;|&nbsp;Archive&nbsp;|&nbsp;<?php single_cat_title(); ?><?php } ?> 
<?php else if (is_month()) { ?><?php bloginfo('name'); ?>&nbsp;|&nbsp;Archive&nbsp;|&nbsp;<?php the_time('F'); ?><?php } ?> 
<?php else if (function_exists('is_tag')) { 
    if (is_tag()) { ?><?php bloginfo('name'); ?>&nbsp;|&nbsp;Tag Archive&nbsp;|&nbsp;<?php single_tag_title("", true); } 
    } ?> 
</title> 
+10

構文に間違いがあるのは、コード内で何が起こっているかを自分で確認することが完全に難しいことです。複数の行を使用して、それらのphpタグを開いたり閉じたりしないでください。 – PeeHaa

+3

私の目! **ゴーグルは何もしません!** :) –

+0

@djacobson Up and Atom! – Rudu

答えて

0
<title> 
<?php 
//storefront_title(); 
if (is_front_page()) { 
    bloginfo('name'); echo '&nbsp;|&nbsp;'; bloginfo('description'); 

} else if (is_home()) { 
    bloginfo('name'); echo '&nbsp;|&nbsp;'; bloginfo('description'); 

} else if (is_search()) { 
    bloginfo('name'); echo '&nbsp;|&nbsp;Search Results'; 

} else if (is_author()) { 
    bloginfo('name'); echo '&nbsp;|&nbsp;Author Archives'; 

} else if (is_single()) { 
    wp_title(''); echo '&nbsp;|&nbsp;'; bloginfo('name'); 

} else if (is_page()) { 
    bloginfo('name'); echo '&nbsp;|&nbsp;'; wp_title(''); 

} else if (is_category()) { 
    bloginfo('name'); echo '&nbsp;|&nbsp;Archive&nbsp;|&nbsp;'; single_cat_title(); 

} else if (is_month()) { 
    bloginfo('name'); echo '&nbsp;|&nbsp;Archive&nbsp;|&nbsp;'; the_time('F'); 

} else if (function_exists('is_tag') && is_tag()) { 
    bloginfo('name'); echo '&nbsp;|&nbsp;Tag Archive&nbsp;|&nbsp;'single_tag_title("", true); 

} 
?> 
</title> 
+0

変更した内容と改善された点を教えてください。 –

+1

@AndyEvans:私はすべての愚かな '?><?php'を修正しました... – Boann

2
<title> 
<?php //storefront_title(); ?> 
<?php if (is_front_page()) { ?><?php bloginfo('name'); ?>&nbsp;|&nbsp;<?php  bloginfo('description'); ?><?php }else ?> 
<?php if (is_home()) { ?><?php bloginfo('name'); ?>&nbsp;|&nbsp;<?php bloginfo('description'); ?> <?php }else ?> 
<?php if (is_search()) { ?><?php bloginfo('name'); ?>&nbsp;|&nbsp;Search Results<?php }else ?> 
<?php if (is_author()) { ?><?php bloginfo('name'); ?>&nbsp;|&nbsp;Author Archives<?php }else ?> 
<?php if (is_single()) { ?><?php wp_title(''); ?>&nbsp;|&nbsp;<?php bloginfo('name'); ?><?php }else ?> 
<?php if (is_page()) { ?><?php bloginfo('name'); ?>&nbsp;|&nbsp;<?php wp_title(''); ?><?php }else ?> 
<?php if (is_category()) { ?><?php bloginfo('name'); ?>&nbsp;|&nbsp;Archive&nbsp;|&nbsp;<?php single_cat_title(); ?><?php }else ?> 
<?php if (is_month()) { ?><?php bloginfo('name'); ?>&nbsp;|&nbsp;Archive&nbsp;|&nbsp;<?php the_time('F'); ?><?php }else ?> 
<?php if (function_exists('is_tag')) { 
    if (is_tag()) { ?><?php bloginfo('name'); ?>&nbsp;|&nbsp;Tag Archive&nbsp;|&nbsp;<?php single_tag_title("", true); } 
    } ?> 
</title> 
+3

あなたが変更したものを示したいかもしれない。 –

+3

何を変更しましたか?私は見ようとしているが、私の目は出血し続ける。 :P – PeeHaa

+0

これは、行の先頭ではなく、前の行の最後に 'else'を追加したようです。 –

6

[OK]を...ので、ここであなたの構文クリーンアップしようとする試みです:

<title> 
<?php 
if (is_front_page()) { 
    bloginfo('name'); 
    echo "&nbsp;|&nbsp;"; 
    bloginfo('description'); 
} elseif (is_home()) { 
    bloginfo('name'); 
    echo "&nbsp;|&nbsp;"; 
    bloginfo('description'); 
} elseif (is_search()) { 
    bloginfo('name'); 
    echo "&nbsp;|&nbsp;Search Results"; 
} elseif (is_author()) { 
    bloginfo('name'); 
    echo "&nbsp;|&nbsp;Author Archives"; 
} elseif (is_single()) { 
    wp_title(''); 
    echo "&nbsp;|&nbsp;"; 
    bloginfo('name'); 
} elseif (is_page()) { 
    bloginfo('name'); 
    echo "&nbsp;|&nbsp;"; 
    wp_title(''); 
} elseif (is_category()) { 
    bloginfo('name'); 
    echo "&nbsp;|&nbsp;Archive&nbsp;|&nbsp;"; 
    single_cat_title(); 
} elseif (is_month()) { 
    bloginfo('name'); 
    echo "&nbsp;|&nbsp;Archive&nbsp;|&nbsp;"; 
    the_time('F'); 
} elseif (function_exists('is_tag') && is_tag()) { 
    bloginfo('name'); 
    echo "&nbsp;|&nbsp;Tag Archive&nbsp;|&nbsp;"; 
    single_tag_title("", true); 
}?> 
</title> 

ふうに...あなたには、いくつかのif文(is_front_page() || is_home()を組み合わせることができますようにすべてのことの後に、それが見えます)。これらの機能が何をしているかについてもっと知ることなく...(例えば、bloginfo関数はコンテンツを直接出力しますか?)

+2

+1努力のために – PeeHaa

+1

笑、ありがとう@PeeHaa ...私の目はこれを憎むレイアウトの削減。 – Rudu

+1

@PeeHaaスーパーエディタのステータスはどうしますか?二重引用符をシングルに変更することは何も役に立ちません。 – Rudu

3

PHPパーサは、?>に遭遇したときに実際にブロックレベルの解析を終了します。例えば

これは完全に有効です:

if (1)  { 2222; } 
elseif (3) { 4444; } 

これはunexpected T_ELSEまたはELSEIFにつながる一方で:

if (1)  { 2222; } 
?><? 
elseif (3) { 4444; } 

だから、単にコードと生のHTMLの間にスイッチはありません。

は、しかし、それは別の構文では動作しない:

if (1):  { 2222; } 
?><? 
elseif (3): { 4444; } 
?><? 
endif; 

@OP:あなたはこのいずれかを使用してはならないことに注意してください。ちょうど奇妙な構文の場合の説明のため。あなたのコードを醜いものにすることはお勧めです。