PHP else语句似乎无法使语法正确

时间:2011-12-14 17:35:31

标签: php if-statement

我正在使用Dreamweaver。它告诉我第4行出了问题,第一个就是。它没有告诉我任何有用的东西。我的语法出了什么问题?

<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>

4 个答案:

答案 0 :(得分:6)

好的......所以这是尝试清理你的语法:

<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>

Phew ......毕竟,看起来你可以组合一些if语句(is_front_page() || is_home())。在不知道这些函数的作用的情况下......(例如,bloginfo函数直接输出内容吗?)无法提供更多帮助。

答案 1 :(得分:3)

PHPs解析器在遇到?>时确实会终止块级解析。

例如,这完全有效:

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

虽然这会导致unexpected T_ELSEELSEIF

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

所以这不仅仅是代码和原始HTML之间的转换。

但是它确实可以使用替代语法:

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

@OP:请注意,您也不应该使用它。只是为了奇怪的语法边缘案例解释。让代码不那么难看是明智的选择。

答案 2 :(得分: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 :(得分: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>