我正在使用Dreamweaver。它告诉我第4行出了问题,第一个就是。它没有告诉我任何有用的东西。我的语法出了什么问题?
<title>
<?php //storefront_title(); ?>
<?php if ( is_front_page() ) { ?><?php bloginfo('name'); ?> | <?php bloginfo('description'); ?><?php } ?>
<?php else if ( is_home() ) { ?><?php bloginfo('name'); ?> | <?php bloginfo('description'); ?> <?php } ?>
<?php else if ( is_search() ) { ?><?php bloginfo('name'); ?> | Search Results<?php } ?>
<?php else if ( is_author() ) { ?><?php bloginfo('name'); ?> | Author Archives<?php } ?>
<?php else if ( is_single() ) { ?><?php wp_title(''); ?> | <?php bloginfo('name'); ?><?php } ?>
<?php else if ( is_page() ) { ?><?php bloginfo('name'); ?> | <?php wp_title(''); ?><?php } ?>
<?php else if ( is_category() ) { ?><?php bloginfo('name'); ?> | Archive | <?php single_cat_title(); ?><?php } ?>
<?php else if ( is_month() ) { ?><?php bloginfo('name'); ?> | Archive | <?php the_time('F'); ?><?php } ?>
<?php else if (function_exists('is_tag')) {
if ( is_tag() ) { ?><?php bloginfo('name'); ?> | Tag Archive | <?php single_tag_title("", true); }
} ?>
</title>
答案 0 :(得分:6)
好的......所以这是尝试清理你的语法:
<title>
<?php
if ( is_front_page() ) {
bloginfo('name');
echo " | ";
bloginfo('description');
} elseif ( is_home() ) {
bloginfo('name');
echo " | ";
bloginfo('description');
} elseif ( is_search() ) {
bloginfo('name');
echo " | Search Results";
} elseif ( is_author() ) {
bloginfo('name');
echo " | Author Archives";
} elseif ( is_single() ) {
wp_title('');
echo " | ";
bloginfo('name');
} elseif ( is_page() ) {
bloginfo('name');
echo " | ";
wp_title('');
} elseif ( is_category() ) {
bloginfo('name');
echo " | Archive | ";
single_cat_title();
} elseif ( is_month() ) {
bloginfo('name');
echo " | Archive | ";
the_time('F');
} elseif ( function_exists('is_tag') && is_tag()) {
bloginfo('name');
echo " | Tag Archive | ";
single_tag_title("", true);
}?>
</title>
Phew ......毕竟,看起来你可以组合一些if语句(is_front_page() || is_home()
)。在不知道这些函数的作用的情况下......(例如,bloginfo
函数直接输出内容吗?)无法提供更多帮助。
答案 1 :(得分:3)
PHPs解析器在遇到?>
时确实会终止块级解析。
例如,这完全有效:
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:请注意,您也不应该使用它。只是为了奇怪的语法边缘案例解释。让代码不那么难看是明智的选择。
答案 2 :(得分:2)
<title>
<?php //storefront_title(); ?>
<?php if ( is_front_page() ) { ?><?php bloginfo('name'); ?> | <?php bloginfo('description'); ?><?php }else ?>
<?php if ( is_home() ) { ?><?php bloginfo('name'); ?> | <?php bloginfo('description'); ?> <?php }else ?>
<?php if ( is_search() ) { ?><?php bloginfo('name'); ?> | Search Results<?php }else ?>
<?php if ( is_author() ) { ?><?php bloginfo('name'); ?> | Author Archives<?php }else ?>
<?php if ( is_single() ) { ?><?php wp_title(''); ?> | <?php bloginfo('name'); ?><?php }else ?>
<?php if ( is_page() ) { ?><?php bloginfo('name'); ?> | <?php wp_title(''); ?><?php }else ?>
<?php if ( is_category() ) { ?><?php bloginfo('name'); ?> | Archive | <?php single_cat_title(); ?><?php }else ?>
<?php if ( is_month() ) { ?><?php bloginfo('name'); ?> | Archive | <?php the_time('F'); ?><?php }else ?>
<?php if (function_exists('is_tag')) {
if ( is_tag() ) { ?><?php bloginfo('name'); ?> | Tag Archive | <?php single_tag_title("", true); }
} ?>
</title>
答案 3 :(得分:0)
<title>
<?php
//storefront_title();
if (is_front_page()) {
bloginfo('name'); echo ' | '; bloginfo('description');
} else if (is_home()) {
bloginfo('name'); echo ' | '; bloginfo('description');
} else if (is_search()) {
bloginfo('name'); echo ' | Search Results';
} else if (is_author()) {
bloginfo('name'); echo ' | Author Archives';
} else if (is_single()) {
wp_title(''); echo ' | '; bloginfo('name');
} else if (is_page()) {
bloginfo('name'); echo ' | '; wp_title('');
} else if (is_category()) {
bloginfo('name'); echo ' | Archive | '; single_cat_title();
} else if (is_month()) {
bloginfo('name'); echo ' | Archive | '; the_time('F');
} else if (function_exists('is_tag') && is_tag()) {
bloginfo('name'); echo ' | Tag Archive | 'single_tag_title("", true);
}
?>
</title>