首页 » WordPress » WordPress 主题教程 #5d:Else,日志 ID,链接标题

WordPress 主题教程 #5d:Else,日志 ID,链接标题

Else,日志 ID,链接标题从零开始创建 WordPress 主题系列教程的五篇的第四部分,这篇课程将讲解其他3个可以增加到日志中的元素:Elsepost ID, 和 链接的 title 值。尽管它们是可选的,但是我们几乎可以在我每一个免费的主题中都能找到。

开始之前,不要忘记启动 Xampp。

第1步:Else

<?php endwhile; ?> 的下面输入以下代码:
<?php else : ?>

<div class=”post”>
<h2><?php _e(’Not Found’); ?></h2>

</div>

大致如下:

else.gif

保存刷新浏览器,但是应该注意到没有任何变化。我们返回教程 #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”>

post-id.gif

保存并刷新浏览器。然后 查看 > 页面源代码。现在我们会发现现在每篇日志都附加上了一个数字或者说是日志 ID。the_ID() 只是调用每篇日志的 ID。

为什么使用它呢?这是用来定制个别的日志的面貌。后面,当你使用 style.css 文件去告诉你的主题日志将看起像怎么样。如果通过给每篇日志附加唯一的 ID,你就可以针对单独的一篇日志进行样式化,使得它和其他日志看起来不一样。如果没有 ID,你将没有办法通过 style.css 文件使它和其他日志不一样。

同时把 classid 赋给同一个 DIV 标签,可以吗?DIV 是标签,class 是一个属性,id 也是是一个属性。每个标签能拥有多个属性,如 DIV 就可以同时有 classid这两个属性。(注释:id 是一个 XHTML 属性。the_ID() 是 PHP 函数。他们是不同的,)

第3步:链接标题

增加 title=”<?php the_title(); ?>” 到日志的标题链接。

the-title1.gif

保存并刷新浏览器。然后再去查看源代码,查找任何日志的标题链接,如果日志的标题链接是 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 然后就会来到你的博客,扫描它,并索引得到一个你日志的摘要,这其中会包括你链接标题的描述。

原文:link

标签:

分享到:

14 条评论 添加你的评论 →

  • 大猫 2007-12-31 22:37:01 #

    我收藏一下

    支持1 反对

  • BlueDrifter 2008-06-01 01:38:20 #

    第3步

    增加 title=”” 到日志的标题链接。

    这个在哪里?看到前面是个PHP的permalnk,但是之前的教程中,好像没有这个语句啊?

    Header用的是,哪里我弄错了么? :shock:

    支持 反对

    • BlueDrifter 2008-06-01 01:38:58 #

      奇怪,我怎么变沙发了?系统错误么? :grin:

      支持 反对

  • 月光使者 2009-03-08 14:12:30 #

    第二步的的这段代码:id=”post-”
    加在哪个class=”post” 里面啊?两个都加么?

    支持 反对

  • airdream 2009-04-23 17:28:02 #

    是还是
    是冒号还的分号

    支持 反对

  • 浓汤 2009-10-29 08:38:59 #

    正确的应该是<a href="”title=”">
    刚开始我以为是修改后面的为title=,结果标题竟然没了,后来还是认真看了教程才醒悟的,呵呵,学习不认真了。。。

    支持2 反对

  • 草颗粒 2010-02-10 19:55:01 #

    为什么我的第一步弄了之后
    主叶就显示
    :oops: Parse error: syntax error, unexpected ‘:’ in /home/ggrraa/public_html/wordpress/wp-content/themes/tutorial/index.php on line 43

    支持 反对

    • livecm 2010-07-03 16:22:54 #

      嗨 哥们 你肯定是复制的文档里面的数据吧 _e()里面的标点符号应该是英文符号的,可是文档里面的确是中文的符号,所以才导致了那个报错的,哈哈 你把那个符号改一改就肯定ok啦。 :smile:

      支持 反对

  • 客家春春 2010-02-24 20:11:08 #

    我的也是和上面的一样的问题
    Parse error: syntax error, unexpected ‘;’, expecting ‘:’ in D:AppServwwwwordpresswp-contentthemeshakkaccindex.php on line 51
    :sad:

    支持 反对

  • 罗迦費昇格V 2010-07-11 20:01:10 #

    博主~~你这里的教程代码,好多标点符号都是 中文标识符~希望改进一下哦~~

    支持 反对

  • Garcia 2011-06-01 20:23:25 #

    第三步,
    <a href=”” title=”"> :twisted:

    支持 反对

  • Garcia 2011-06-01 20:24:03 #

    第三步应该:
    <a href=”” title=”">

    支持 反对

发表评论

你必须 登陆 之后才能留言。你可以使用以下方式快速登陆我爱水煮鱼:

使用新浪微博登陆 使用腾讯微博登陆 使用豆瓣登陆

你也可选择直接在本站 注册