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 然后就会来到你的博客,扫描它,并索引得到一个你日志的摘要,这其中会包括你链接标题的描述。