飞龙博客

深入经藏 智慧如海

wordpress if else条件假设语句6种分析

feilong.org 修订于2010-02-02 09:41:34 1,163

wordpress博客的if else 条件语句,适合不同的类别设计不同的模板内容或css样式。但是对于初学wordpress的朋友来说,wordpress的if条件语句还是比较复杂的。本日志飞龙整理一下自己在学习wordpress的codex过程中,整理的6个if条件语句,更新网址:http://feilong.org/if-else-wordpress 飞龙第3次修订。wordpress的典型if假设条件语句,以下分析不可避免有错误,飞龙以后慢慢更改。欢迎批评指正。

第一种:如果当前分类的id是45,那么显示class为post-cat-45的div前缀,否则显示class为post的div前缀。div 前缀显示确定后,可以自行设计div里面的内容,最后加上div后缀。此种wordpress条件语句适合为指定id类别 使用不同的css样式。

<?php if ( in_category('45') ) { ?>
<div class="post-cat-45">
<?php } else { ?>
<div class="post">
<?php } ?>
div里面的内容
</div>

第二种:如果是id为45的类别,那么你可以自行设计此类下的内容。否则,你可以设计其它情况下的内容。显然这个主要是为指定id类别设计它的模板内容,当然可以包括该分类的css样式。

<?php if ( in_category('45') ) { ?>
此类下的内容可以有html等代码
<?php } else { ?>
其它情况下的内容可以带html等代码
<?php } ?>

如果将上面的代码浓缩写到一个php符里面?飞龙尝试了一下,但是在php代码符内不能有html或div。
<?php
if ( in_category(’45′) ) {
此类下的内容不能有html代码
} else {
其它情况下的内容不能有html代码
}
?>

第三种:这个是wordpress2.5以上版本的。意思是如果当前分类或slug是pachoderms,那么设计什么什么内容,如果是在类别 tropical birds或small-mammals,那么显示什么什么内容。否则,设计什么上面内容。这个if else语句其实是第二种的延伸吧。不过注意它被浓缩到了一个php符里面了,内部没带html代码。

<?php
if ( in_category( 'pachoderms' )) {
// They have long trunks...
} elseif ( in_category( array( 'Tropical Birds', 'small-mammals' ) )) {
// They are warm-blooded...
} else {
// & c.
}
?>

第四种:这个也是比较难懂的if语句,这个用在achieve.php里面的。有好多种if else,分散在不同的php符里面,而且有大括号,飞龙提示你注意拼写哟!呵呵测试后飞龙发现有几处错误,不过还不知道该怎么修改?如果你要求不高,它还是可以使用的。

<?php /* If this is a category archive */ if (is_category()) { ?>
<h2><?php single_cat_title(); ?> category</h2>
<?php } elseif( is_tag() ) { ?>
<h2><?php single_tag_title(); ?> tag</h2>
<?php } elseif (is_day()) { ?>
<h2><?php the_time('F jS, Y'); ?> day</h2>
<?php } elseif (is_month()) { ?>
<h2><?php the_time('F, Y'); ?> month</h2>
<?php } elseif (is_year()) { ?>
<h2><?php the_time('Y'); ?> year</h2>
<?php } elseif (is_author()) { ?>
<h2><?php the_author(); ?> author</h2>
<?php } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>
<h2>pages archived here</h2>
<?php } ?>

第五种:下面这个if语句是wordpress为指定分类使用指定的模板文件。很有用。php代码浓缩到一个php代码符里面了,内部没带html代码。include是php函数,调用的模板文件内部当然可以有html代码。

<?php
if ( in_category('fruit') ) {
include 'single-fruit.php';
} elseif ( in_category('vegetables') ) {
include 'single-vegetables.php';
} else {
// Continue with normal Loop
if ( have_posts() ) : while ( have_posts() ) : the_post();
// ...
}
?>

第六种:下面的第一行代码是没有else的假设语句。意思是如果是首页,那么不显示类别id为3的日志。
<?php if ( is_home() ) {
query_posts($query_string . '&cat=-3');
}
?>

此句经常用在while循环语句的前面。从第二行起是循环语句+if条件语句,这是wordpress经典的the loop(http://codex.wordpress.org/The_Loop)。注意:飞龙简写了一遍,去掉了部分html和div。(飞龙提示:wordpress官方的the_authors_post_link错了,应该是the_author_posts_link)
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<h2><?php the_title(); ?></h2>
<small><?php the_time('F jS, Y') ?> by <?php the_author_posts_link() ?></small>
<?php the_content(); ?>
<?php endwhile; else: ?>
<p>Sorry, no posts</p>
<?php endif; ?>

更新网址:http://feilong.org/if-else-wordpress
最初发布:20100201 01:28:50 feilong.org 于广州

加入收藏夹,查看更方便。

所在分类: wordpress

新作:

旧文:

飞龙前端QQ群