首页 » WordPress » WordPress 主题教程 #6d:搜索框和日历

WordPress 主题教程 #6d:搜索框和日历

搜索框和日历是从零开始创建 WordPress 主题系列教程的第六篇的第四部分,尽管这篇的题目是 搜索框(Search Form)日历(Calendar),但是我同样也会介绍 元数据(Meta) 。这一篇我们会结束常规的侧边栏,然后将在下一篇将介绍如何窗体化(widgetize)化侧边栏。

第1步:增加搜索框

创建一个新文件,然后把该空白文件保存为 searchform.php(当然是和 index.php 在同一个文件夹下)。把 searchform.txt 中的内容拷贝到 searchform.php

index.php 文件,在侧边栏的最顶部输入以下代码:

<li id=”search”>
<?php include(TEMPLATEPATH . ‘/searchform.php’); ?>
</li>

add-search.gif

保存并刷新浏览器,结果如下:

search.gif

刚才发什么了呢?

  • <li id=”search”> – 开始一个名字为 search 的列表元素,给它一个 ID,这样就能够以后样式化它。
  • include() – 导入任何你想导入的文件。这和使用 WordPress 模板函数去调用模板文件是不同的,因为 include() 只是简单导入已经存在的文件。这里是调用在 searhform.php 文件中的代码。被导入的信息应该在一个博客上基本不会被改变的。
  • TEMPLATEPATH – 主题文件夹的位置,这里是:wp-content/themes/tutorial
  • ‘/searchform.php’ – 文件名:/searchform.php
  • 在 TEMPLATEPATH 和 “/searchform.php” 中间的把它们连接起来,所以最终得到:
    wp-content/themes/tutorial/searchform.php
  • </li> – 结束列表元素

注意,搜索框不像分类,归档,页面或者 Blogroll 一样有子标题。当然如果你愿意,也可以给它一个子标题。

第2步:增加日历

在搜索框或者页面链接列表下面输入以下代码:

<li id=”calendar”><h2><?php _e(’Calendar’); ?></h2>
<?php get_calendar(); ?>
</li>

add-calendar.gif

保存并刷新浏览器,结果如下:

calendar.gif

发生了什么?

  • <li id=”calendar”> – 开始一个 ID 为 “Calendar” 的列表元素
  • <h2> – 开始一个子标题
  • <?php _e(’Calendar’); ?> – 输出 Calendar 这个词
  • </h2> – 关闭子标题
  • get_calendar() – 使用 get_calendar() 这个 WP 函数调用日历
  • </li> – 结束列表元素

这样日历就完成了

第3步:增加元数据

get_links_list() 函数下输入以下代码:

<li><h2><?php _e(’Meta’); ?></h2>
<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<?php wp_meta(); ?>
</ul>
</li>

add-meta.gif

保存并刷新浏览器,结果如下:

(如果你没有登录 WordPress)
meta-logged-out.gif

(如果你已经登录)
meta-logged-in.gif

那么这是怎么回事呢?

你开始一个列表元素(LI),跟着是一个子标题(H2) Meta。在子标题下,嵌入了一个无序列表(UL)。最后把每个链接都放入了列表元素中(LI)。

wp_register() 这个函数能产生一组 <li></li> 标签,如果你没有登陆,它显示注册(Register)链接,如果登录了,它显示的是 站点管理(Site Admin)的链接。
wp_loginout() 不会产生列表元素标签,所以需要我们手工输入列表元素标签,当你没有登录的时候,得到的是 登录(Login) 的链接,当已经登录的时候,得到的是登出(Logout)链接。

到目前为止,wp_meta() 没有做任何事情,他在网页上和源代码中都不会产生东西,现在不要考虑 wp_meta(),实际上你已经在使用它了。

到此为止,我们已经完成 Meta 并最终完成了常规的侧边栏。

原文:link

标签:

分享到:

21 条评论 添加你的评论 →

  • dflee0216 2007-10-30 21:08:25 #

    加了META,但是在未登陆状态只有一个登陆选项,没有注册选项

    支持1 反对

    • wujun1988 2011-09-07 17:42:00 #

      需要在后台设置 任何人可以注册 才能显示

      支持 反对

  • dflee0216 2007-10-30 21:14:38 #

    为什么我的头像没有显示?

    支持 反对

  • 大猫 2007-10-31 06:22:25 #

    我的应该有吧,刚昨天注册..

    支持 反对

  • dflee0216 2007-10-31 21:03:29 #

    看了你的头像,感觉你在嘲笑我。--|||

    支持 反对

  • xiaoniba 2008-08-17 18:55:28 #

    请问那个搜索框在IE里是一行,在火狐里却两行,要都在一行内怎么解决?谢谢

    支持 反对

  • 九千鸟 2008-09-14 14:37:26 #

    如果要初始化搜索框内的文字,并且在访问者输入的时候自动删除这些文字,该怎么弄?

    支持 反对

  • 纪小年 2008-12-20 21:09:05 #

    TEMPLATEPATH和template的区别是什么?
    为什么大写的和小写的效果不一样呢。而且我还发现<?php _e(‘categories’); ?>和<?php _e(‘Categories’); ?>也是不一样的。
    为嘛不讲下呢?

    支持 反对

  • 纪小年 2008-12-20 21:37:38 #

    <h2><?php _e(‘Meta’); ?>
    我刷新页面出来的是功能两个字
    <h2><?php _e(‘Pages’); ?>
    结果还是Pages?

    支持 反对

  • spluweijie 2008-12-26 11:12:00 #

    我碰到和一楼一样的问题,请问怎么解决?路过的高手请指点下,谢谢!

    支持 反对

  • Laden 2009-03-23 20:31:16 #

    晕了 所有的php_e()的函数 输出的字符串全都不好用,请那位高手说下啊 !谢谢了!

    支持 反对

    • 阿星 2009-04-17 20:36:26 #

      你看看,可能是引号的问题,要用英文的引号

      支持 反对

    • zkay 2009-05-17 15:47:55 #

      你的php_e是错误的
      正确的中间有空格的,是php _e
      应该是这样的

      支持 反对

  • able_sky 2010-08-13 09:32:22 #

    继续学习中啊,多谢多谢。

    支持 反对

  • 洪山song 2011-08-07 09:59:18 #

    你好博主,请问我把一个从网上下载主题的sidebar.php的meta部分已改为如下代码
    Meta

    ,但为什么meta里面在注册和登录之下还是会出现
    Entries RSS
    Comments RSS
    WordPress.org
    这三个链接呢?

    支持 反对

  • 洪山song 2011-08-07 10:11:07 #

    博主,不好意思,我不知道怎么发出代码来。代码里面只包含了wp_register,wp_loginout,和wp_meta三个函数值

    支持 反对

  • zxiaoy119 2011-11-03 15:05:57 #

    非常喜欢这份教程,正跟着教程一步一步学着做。
    但是里面有很多TXT文件打不开呀!所以做不下去了……比如说本章里的“searchform.txt”文件就打不开……
    能给个链接吗?

    支持 反对

发表评论

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

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

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