WordPress主题制作教程-5制作博客的index.php文件

网站建设 6578 Views 0 Comments

1324517560268

经过前面几讲的学习,我们已经了解了footer.php 、header.php 、style.css 的基本知识。今天要讲一下最重要的一个文件index.php。

在index.php 中主要的就是取出文章相关的信息,这也是页面里的主体信息。我们在header.php 里有提到过这个文件,还写入了两行代码。接下来我们重新写入如下代码,并且讲解这里面用到的模版函数。

<?php get_header(); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class=”post” id=”post-<?php the_ID(); ?>”>
<h2><a class=”title” href=”<?php the_permalink() ?>” rel=”bookmark”><?php
the_title(); ?></a></h2>
<div class=”info”>
<span class=”date”><?php the_time() ?></span>
<?php if ($options['author']) : ?><span class=”author”><?php
the_author_posts_link(); ?></span><?php endif; ?>
<?php edit_post_link(‘edit’, ‘<span class=”editpost”>’, ‘</span>’); ?>
<span class=”comments”><?php comments_popup_link(‘no comment’,'1 comment’, ‘%
comments’, ‘Comments off’); ?></span>
<div class=”fixed”></div>
</div>
<div class=”content”>
<?php the_content(‘read more’); ?>
</div>
<div class=”under”>
<span class=”categories”>Categories</span><span><?php the_category(‘, ‘); ?></span>
<span class=”tags”>tags: </span><span><?php the_tags(”, ‘, ‘, ”); ?></span>
</div></div>
<?php endwhile; else : ?>
<div class=”errorbox”>
没有任何文章
</div>
<?php endif; ?>
<div id=”pagenavi”>
<?php if(function_exists(‘wp_pagenavi’)) : ?>
<?php wp_pagenavi() ?>
<?php else : ?>
<span class=”newer”><?php previous_posts_link(‘上一页’); ?></span>
<span class=”older”><?php next_posts_link(‘下一页’); ?></span>
<?php endif; ?>
</div>
<?php get_footer() ?>

请注意其中的引号,应该是英文半角的。这些代码是不是看起来有些眼晕啊,这没关系,我们慢慢来分析。
(1)get_header() ,get_footer()函数
还记得我们前两讲里做的header.php 和footer.php 文件吗,这两个函数的作用就是把这两个文件引入进来,就相当于php 中的include 函数,这样我们才能在同一个网页中把header 和footer 都显示出来。这也可以看出来index.php 的重要性,他统领着其他的文件。与这两个函数类似的还有get_siderbar()函数,这个函数就是包含siderbar.php 文件,这个文件的内容我们将在后续的课程中讲解。
(2)have_posts(),the_post()函数
Have_posts()的作用就是判读博客中是不是有发表的文章,通常用于条件判断中,the_post()的作用就是进行数据库查询,把与文章相关的数据查询出来,这样我们就能在后续的代码中使用相关函数将这些信息输出到页面上,一般的用法就是像上面那样:
<?php If(have_posts()):while(have_posts()):the_post();?>
这里是循环取出与文章相关的信息
<?php endwhile;?>
<?php else:?>
这里是如果没有文章的话,就显示这里的信息。
<?php endif;?>
需要注意的是这里的if 和while 后面用的是冒号不是分号,如果误写成分号就不能实现预想的功能啦。
(3)the_ID() the_permalink() the_title() the_time() the_content(‘read more’)
附注:这五个函数只能在WordPress 的循环中使用,他们不是全局函数。
The_ID()
作用是取得每次循环的编号,输出的结果post-数字编号
The_permalink()
作用是取得文章永久链接。这个函数不带参数表示取得当前循环中的文章的链接,也可以传入一个id 编号这样就可以取得该id 所对应的文章的链接。函数定义在:
/wordpress/wp-includes/link-template.php -> line 9
The_title()
取得文章的标题,这个函数的完整参数列列表the_title($before = ”, $after = ”, $echo = true)
$before 就是指文章标题前面要显示的内容,$after 就是指文章标题后面说要显示的内容。
$echo 取值true 表示显示文章标题,为false 则返回文章的标题。
函数定义在: /latest/wordpress/wp-includes/post-template.php -> line 35
The_time()
the_time()用来获取并显示当前文章发布的时间,该函数后面可以跟控制日期或时间格式的参
数,常用的参数形式如下:
如<?php the_time(’F j, Y’); ?>的调用形式显示效果为:六月13, 2009(英文状态下显示June 13,
2009);
如<?php the_time(’g:i a’); ?>的调用形式显示效果为:7:09 下午(英文状态下显示7:09 pm);
如<?php the_time(’G:i’); ?>的调用形式显示效果为:19:09。
事实上,除了使用the_time()函数之外,WordPress 还提供了一个具有类似功能的get_the_time()
函数。该函数除了不具有the_time()函数的显示功能之外,其余功能二者完全相同。使用
get_the_time()函数时,如欲将获取的时间显示出来,需要使用专用语句。
下面,我们籍此机会来简单了解一下WordPress 中时间的格式。在WordPress 中,通常用于
控制时间格式的有以下字符:l, F, j, S, Y, G, g, i, a 等等,其详细意义如下:
l(小写L)用来显示一周之中每一天的名称,比如星期六,或者在英文中显示Saturday;
F 用来显示月份名称,比如六月,或者June;
j 用来显示一月之中的某一天,比如13;
Y 用来以4位数字形式显示年份,使用y 则以末两位数字显示年份,比如2009或09;
G, g, i, a 等四个字符通常组合使用,如前例子,有两种形式:
g:i a 以形如7:09 下午或7:09 pm 的形式显示时间;
G:i 以形如19:09的24小时进制形式显示时间。
S 通常紧跟在j 后面,表示是否在一月之中某天之后添加英文后缀(st, nd, th 等)。
The_content()

取出文章的内容,这个可以带一个参数,the_content(“more”), 作用是如果在文章中有
<!–more–>时,就自动截断显示more 连接,可以查看详细信息。
(4)the_category()、the_tags()函数
the_category() 取得文章所属的目录列表,可以这样使用the_category(‘|’),如果我们有
WordPress WordPress 主题WordPress 插件这三个目录那么显示出来是这样的:
WordPress|WordPress 主题|WordPress 插件,‘|’就是相邻目录之间的分隔符,这个可以根据自
己的需要来使用不同的符号把他们分隔开来,默认情况下是使用空格来分隔的的。
the_tags() 取得文章所属的标签。
the_tags( $before = ‘Tags: ‘, $sep = ‘, ‘, $after = ” ) $before 在标签前面显示的内容,$sep 分隔
符,$after 标签后显示的内容。

转载请注明:一只羊博客 » WordPress主题制作教程-5制作博客的index.php文件

分享到:
(0)

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址