20

经过前面几讲的学习,我们已经了解了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 endfi;?>

需要注意的是这里的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标签后显示的内容。

有任何问题可以在此留言,欢迎的大家对教程提出意见和建议。



更多




请输入您的Email地址,订阅WordPress电子报:

填写您的邮件地址,订阅我们的精彩内容:

,

  1. [呵呵] 建议楼主搞个下一篇,我学到教程5怎么也找不到教程6,教程没的说,倍儿棒

  2. 你的博客有联系页面吗?我在寻找,但是,我想向您发送电子邮件的问题。我已经有了一些创意,为您的博客,你可能会在听证会感兴趣。无论哪种方式,伟大的网站,我期待着看到它随着时间的推移。

  3. 只是想我会送你一条线,告诉你您的网站真正的岩石!我一直在寻找这方面的信息很长一段时间的排序..我通常不答复的职位,但我会在这种情况下。魔兽了不起的伟大。

  4. 我見過更令人印象深刻的博客之一。感謝這麼多互聯網改變優雅。 Youve了風格,階級,虛張聲勢。我的意思是。請保持它,因為如果沒有互聯網肯定是缺乏情報。

  5. 大家有趣的合资企业。即使是初学者rn以及:感谢您抽出时间来讨论这个,我真的强烈感觉到它和爱学习关于这一主题的。如果可能的话,为您实现专业知识,你的想法与其他信息更新你的博客吗?这可对我来说非常有用。

  6. 我和我的邻居一直只是这个特定的主题进行辩论,他在搜索通常向我显示不正确。你对此的看法是伟大的,究竟如何我真的觉得。我刚才给他的网站,点出他你自己的看法。寻找你的网站,我的书标记及后应再次了解你的新职位!

  7. Pingback: wordpress主题制作教程6 – sidebar.php制作流程 | 冰狐设计

  8. Pingback: YESURE技术博客 » posts和pages之间的区别

  9. Pingback: YESURE技术博客 » 关于wordpress白屏问题的解决方案

  10. 关于日期时间这一块, 如果我用的是wordpress中文版, 月份这一项如何能获取阿拉伯数字的显示? 谢

请不要在评论里发HTML格式的链接,会直接被屏蔽。

无觅相关文章插件,快速提升流量