WordPress 主题教程 #5d:Else,日志 ID,链接标题
2007年06月08日
Else,日志 ID,链接标题是从零开始创建 WordPress 主题系列教程的五篇的第四部分,这篇课程将讲解其他3个可以增加到日志中的元素:Else,post ID, 和 链接的 title 值。尽管它们是可选的,但是我们几乎可以在我每一个免费的主题中都能找到。
开始之前,不要忘记启动 Xampp。
第1步:Else
在 <?php endwhile; ?> 的下面输入以下代码:
<?php else : ?>
<div class=”post”>
<h2><?php _e(’Not Found’); ?></h2>
</div>
大致如下:

保存刷新浏览器,但是应该注意到没有任何变化。我们返回教程 #5 -- 主循环,去解释你刚才上面输入的是什么?
这里就是主循环的部分代码:
<?php if(have_posts()) : ?><?php while(have_posts()) : the_post(); ?>
<?php endwhile; ?>
<?php endif; ?>
第一,if(have_posts()) 检查博客是否有日志,
第二,while(have_posts()) 执行 the_post() 去调用日志。而 Else 是当博客完全没有日志的时候执行的。 while() 和 endwhile; 应该嵌套在 if() 和 else :之间。 所以 <?php else : ?> 应该在 <?php endwhile; ?> 之后。
现在你知道什么是 else 了吧,当没有任何日志或者当找不到任何日志的时候,告诉 WordPress 怎么处理,让 WordPress 显示错误信息 Not Found,或者其他任何你想要的东西。我们可以下载任一款免费主题,看一下它的 index.php 文件怎么写的。
在上面的例子中,Not Found 错误信息是在 <?php _e(''); ?> 之中。如我上一篇所说,这不是必需的,只是为了让主题可翻译。
整个信息和代码 Not Found 外面有 <h2> 和 </h2>。这个同样也不是必需的。你可以简单使用:
<div class=”post”>
Not Found
</div>
但是,给这个错误信息使用上 <h2> (子标题)标签能够使它更明显,让访问者注意到这个页面上没有任何东西。
那么 <div class=”post”> 和 </div> 用来做什么的呢?恩,我们肯定不想你的错误信息在“茫茫蛮荒之地”之间滞留,对不?我们用 <div class=”post”> 和 </div> 标签围住每篇日志。所以同样,尽管是错误信息不是真正的日志内容,但是我们其实可以把它当作日志来处理。
第2步:日志 ID
增加 id=”post-<?php the_ID(); ?>” 到 <div class=”post”>
保存并刷新浏览器。然后 查看 > 页面源代码。现在我们会发现现在每篇日志都附加上了一个数字或者说是日志 ID。the_ID() 只是调用每篇日志的 ID。
为什么使用它呢?这是用来定制个别的日志的面貌。后面,当你使用 style.css 文件去告诉你的主题日志将看起像怎么样。如果通过给每篇日志附加唯一的 ID,你就可以针对单独的一篇日志进行样式化,使得它和其他日志看起来不一样。如果没有 ID,你将没有办法通过 style.css 文件使它和其他日志不一样。
同时把 class 和 id 赋给同一个 DIV 标签,可以吗?DIV 是标签,class 是一个属性,id 也是是一个属性。每个标签能拥有多个属性,如 DIV 就可以同时有 class 和 id这两个属性。(注释:id 是一个 XHTML 属性。the_ID() 是 PHP 函数。他们是不同的,)
第3步:链接标题
增加 title=”<?php the_title(); ?>” 到日志的标题链接。
保存并刷新浏览器。然后再去查看源代码,查找任何日志的标题链接,如果日志的标题链接是 Hello World,那么他的左边应该有 title="Hello World"。
title="" 是 <a>(链接)标签的另一个属性。在双引号中的是链接的描述。在这里,每篇日志的标题也是链接的描述。这就是为什么我们要再次使用 the_title() 这个 PHP 函数。
如果不使用 the_title() 作为 title=”"的值,那么每篇日志标题链接将会有同样的描述。举个例子,如果用 title="Click me" 取代 the_title(),每篇日志标题链接都将会用 Click me 作为描述。
返回页面。把鼠标移到任何一篇日志标题的链接上,描述信息将会弹出,这就是刚刚增加的。增加描述到链接是非常有用的,当你其他站点需要扫描你的博客的时候,如 Technorati.com,每次你发表日志的时候,WordPress 通知 Technorati 和其他网站你的博客已经更新了。Technorati 然后就会来到你的博客,扫描它,并索引得到一个你日志的摘要,这其中会包括你链接标题的描述。
WordPress 主题教程
- WordPress 主题教程:从零开始制作 WordPress 主题
- WordPress 主题教程 #1:介绍
- WordPress 主题教程 #2:模板文件和模板
- WordPress 主题教程 #3:开始 Index.php
- WordPress 主题教程 #4a:Header 模板
- WordPress 主题教程 #4b:Header 模板 2
- WordPress 主题教程 #5:主循环
- WordPress 主题教程 #5b:日志内容
- WordPress 主题教程 #5c:日志元数据
- WordPress 主题教程 #5d:Else,日志 ID,链接标题
- WordPress 主题教程 #5e:日志导航链接
- WordPress 主题教程 #6:侧边栏
- WordPress 主题教程 #6b:页面链接列表
- WordPress 主题教程 #6c:存档和链接列表
- WordPress 主题教程 #6d:搜索框和日历
- WordPress 主题教程 #6e:窗体化侧边栏
- WordPress 主题教程 #7:尾部
- WordPress 主题教程 #8:验证 XHTML
- WordPress 主题教程 #9:Style.css 和 CSS 介绍
- WordPress 主题教程 #10:十六进制颜色代码和样式化链接
- WordPress 主题教程 #11:宽度和布局
- WordPress 主题教程 #12:日志样式化和其他杂项
- WordPress 主题教程 #13:样式化侧边栏
- WordPress 主题教程 #14:底部和拆分 Index
- WordPress 主题教程 #15:子模板文件
- WordPress 主题教程 #16:留言模板
- erdaoo 的 WP Theme 教程学习笔记
- WordPress 主题教程电子书下载
翻译自:http://www.wpdesigner.com/2007/02/28/wp-theme-lesson-5d/,并根据中文习惯和个人理解做了修改!
10 条评论 添加你的评论 →



1. 大猫 | 2007:12:31 - 22:37:01 | #
我收藏一下
2. 胡戈戈 | 2008:01:31 - 10:21:13 | #
猫猫很黄很暴力
3. BlueDrifter | 2008:06:01 - 01:38:20 | #
第3步
增加 title=”” 到日志的标题链接。
这个在哪里?看到前面是个PHP的permalnk,但是之前的教程中,好像没有这个语句啊?
Header用的是,哪里我弄错了么?
4. BlueDrifter | 2008:06:01 - 01:38:58 | #
奇怪,我怎么变沙发了?系统错误么?
5. 月光使者 | 2009:03:08 - 14:12:30 | #
第二步的的这段代码:id=”post-”
加在哪个class=”post” 里面啊?两个都加么?
6. airdream | 2009:04:23 - 17:28:02 | #
是还是
是冒号还的分号
7. airdream | 2009:04:23 - 17:29:02 | #
php else: php else;
8. 浓汤 | 2009:10:29 - 08:38:59 | #
正确的应该是<a href="”title=”">
刚开始我以为是修改后面的为title=,结果标题竟然没了,后来还是认真看了教程才醒悟的,呵呵,学习不认真了。。。
9. 草颗粒 | 2010:02:10 - 19:55:01 | #
为什么我的第一步弄了之后
Parse error: syntax error, unexpected ‘:’ in /home/ggrraa/public_html/wordpress/wp-content/themes/tutorial/index.php on line 43
主叶就显示
10. 客家春春 | 2010:02:24 - 20:11:08 | #
我的也是和上面的一样的问题
Parse error: syntax error, unexpected ‘;’, expecting ‘:’ in D:AppServwwwwordpresswp-contentthemeshakkaccindex.php on line 51