【wordpress主题介绍】
在详细分解代码之前,我们还是要先了解一下WP主题的大致情况。一个 WP 的主题是由几个 templates 文件组成的,每一个主题必有的二个文件是:index.php 和 style.css(样式表),除此之外还有一些其它的文件(不是必须),它们和 index.php 文件间存在优先级关系,如果它们存在,WP 模板系统就会调用它们显示相应的页面,否则模板系统会调用 index.php 来显示。
它们有可能是以下文件:
single.php — 单一日志文件,用于显示单一日志
page.php — 页面模板文件,用于显示静态页面
archive.php — 存档文件,用于显示存档页面
category.php — 类别文件,用于显示类别页面
search.php — 搜索文件,用于显示搜索结果
404.php — 错误文件,用于显示404页面
comments.php — 评论文件,用于显示评论和评论框
index.php
首先制作index.php,我们知道在一个网页中,代码主要分为二部分,一个是页头信息,一个是页面内容。
代码如下:
.........页头信息
.........页面内容
每个主题的页头信息都是几乎一样,具体可以查看默认模板的 header.php 文件(为保证所有页面的页头信息的一致性,所有页头信息都放在 header.php 文件。)
接下来我们谈下一话题,关于母猪的产后护理……(我学的太杂了,都弄混了)
我们来谈一下body中的内容。
它包含四个部分,每一部分都可以叫做一个集成模块,其实一个主题就是由不同的模块构成,模块又是由不同的模块构成。
header WP 的顶部,显示博客的名字与描述,放置导航栏,搜索栏等等。
content WP 的正文部分,显示贴子的内容,作者,时间,分类,评论,编辑等等。
sidebar WP 的侧边栏部分。
footer WP 的尾部,这部分只有很少的内容,通常是版权信息。
对于每一个集成模块中的内容,理论上是可以随意放置的,比如我们可以把header模块中的搜索栏放在sidebar模块中去。
那如何区分这四个集成模块呢?看以下代码。
代码如下:
这是我的博客
这是我的日志
搜索栏,分类,存档,友情链接
版权信息,我是二道
通过 p 标签,我们可以把这些模块分隔开来。
header
现在开始我们第一部分的代码块,不过在写代码之前我还得要嗦一句,写代码要有层次感,要记得缩进,不要用空格缩进而用TAB键。
代码如下:
<?php bloginfo('name');?>
<?php bloginfo('description');?>
id 是 p 的一个属性,给 id 赋于不同的值,这样就可以区分每一个p代码段。
bloginfo() 是 WP 中定义好的函数,参数 url 返回网址,参数 name 返回网站的名字,参数 description 返回网站描述。
在上面的代码中,就是为博客的标题并加上一个超链接,并且显示描述。
如果我们把上面的三行代码加上页头部分另存为一个新的文件 — header.php。这样我们就可以通过以下 WP 函数导入它们。
<?php get_header(); ?>
这样的好处是,你只要修改一下header.php文件,所有调用这个文件的页面都会跟随改变,而不用一个一个地去修改了。
content
现在开始我们第二部分的代码块:
代码如下:
<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post(); ?>
<?php endwhile; ?>
<?php endif; ?>
这里使用 if(have_posts() 来检测是否有日志存在,如果有的话,就用 while 循环显示。the_post() 就是调用日志的函数。
而每一篇日志又是有标题,有发布时间,有分属类别,有读者的评论,这些又全部需要用 p 标签来分隔开。看下面的代码:
代码如下:
<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post(); ?>
<?php the_title();?>
<?php the_content();?>
<?php _e('Filed under:');?>
<?php the_category(',');?>
<?php _e('by');?>
<?php the_autnor('');?>
<?php comments_poopup_link('No Comments»','1 Comments»','% Comment»');?>
<?php edit_post_link('Edit','|','');?>
<?php endwhile; ?>
<?php endif; ?>
class
现在我们得要说说 class 了,它是与 id 都是标签的属性,但是不同之处在于,id 的参数值是唯一的,它在一个页面只能使用一次,而 class 的参数值是可以多次使用,
比如 id=”header” 只能出现一次,因为我们只有一个地方可以出现博客的名字。而class=”entry” 会经常出现,那是因为我们的博客里不只是有一篇日志。
为什么我们要用到 id 与 class,难道只用一个不行吗,反正功能都是相同的。不要忘了我们前面说过的一个重要文件,style.css 样式表文件。我们为某一段代码添加了属性,如同起个名字而已,这样在样式表中我们就可以为这些名字来定制它们的样式了。
这样说你还不明白?那就打个最简单的比方吧,你可以有很多的兄弟,但是你们只能有一个爹,你不能用你爹的名字叫你的兄弟,但是你爹可以用你兄弟的名 字叫你。样式表文件就和你奶奶一样,你爹再牛逼也得听你奶奶的话,叫他怎么样他就得要怎么样。(老大你这个比喻寒啊,瀑布寒!!)
Not Found
前面的代码中有说到,如果检测到有日志的话,就用循环调出来,可是如果没有日志的话那要怎么样呢?
代码如下:
<?php else:?>
<?php _e('Not Found');?>
把这一段代码加在 之后就可以了。
页面导航
当你的博客内容越来越多的时候,在 WP 的后台又设定了首页只显示10个日志,那么从第11个开始都无法在首页显示出来。
这样在博客的最后一篇日志下面就会出现后一页或前一页的链接。如果你还不到10个日志,这个链接就不会出现。
把下面的代码加入到 前面
<?php posts_nav_link(); ?>
分析一下 posts_nav_link() 这个 WP 函数,它可以有三个参数:
<? posts_nav_link('in between',’before',’after')
,第1个参数是显示在后一页和前一页链接的中间。第2个参数显示在后一页和前一页链接的前面。第3个参数显示在后一页和前一页链接的后面。用什么来显示,你自己决定,常用的就是一些符号或是箭头而已嘛。
现在再看一下我们已经有了哪些个代码:
代码如下:
<?php get_header(); ?>
<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post(); ?>
<?php the_title();?>
<?php the_content();?>
<?php _e('Filed under:');?>
<?php the_category(',');?>
<?php _e('by');?>
<?php the_autnor('');?>
<?php comments_poopup_link('No Comments»','1 Comments»','% Comment»');?>
<?php edit_post_link('Edit','|','');?>
<?php endwhile; ?>
<?php posts_nav_link(); ?>
<?php else:?>
<?php _e('Not Found');?>
<?php endif; ?>