標(biāo)簽: 雜談 |
經(jīng)過前面幾講的學(xué)習(xí),我們已經(jīng)了解了footer.php 、header.php 、style.css 的基本知識。今天要講一下最重要的一個文件index.php。
在index.php中主要的就是取出文章相關(guān)的信息,這也是頁面里的主體信息。我們在header.php里有提到過這個文件,還寫入了兩行代碼。接下來我們重新寫入如下代碼,并且講解這里面用到的模版函數(shù)。
<?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() ?>
請注意其中的引號,應(yīng)該是英文半角的。
這些代碼是不是看起來有些眼暈啊,這沒關(guān)系,我們慢慢來分析。
(1)get_header() ,get_footer()函數(shù)
還記得我們前兩講里做的header.php 和footer.php文件嗎,這兩個函數(shù)的作用就是把這兩個文件引入進(jìn)來,就相當(dāng)于php中的include函數(shù),這樣我們才能在同一個網(wǎng)頁中把header和footer都顯示出來。這也可以看出來index.php的重要性,他統(tǒng)領(lǐng)著其他的文件。與這兩個函數(shù)類似的還有g(shù)et_siderbar()函數(shù),這個函數(shù)就是包含siderbar.php文件,這個文件的內(nèi)容我們將在后續(xù)的課程中講解。
(2)have_posts(),the_post()函數(shù)
Have_posts()的作用就是判讀博客中是不是有發(fā)表的文章,通常用于條件判斷中,the_post()的作用就是進(jìn)行數(shù)據(jù)庫查詢,把與文章相關(guān)的數(shù)據(jù)查詢出來,這樣我們就能在后續(xù)的代碼中使用相關(guān)函數(shù)將這些信息輸出到頁面上,一般的用法就是像上面那樣:
<?php If(have_posts()):while(have_posts()):the_post();?>
這里是循環(huán)取出與文章相關(guān)的信息
<?php endwhile;?>
<?php else:?>
這里是如果沒有文章的話,就顯示這里的信息。
<?php endfi;?>
需要注意的是這里的if 和while后面用的是冒號不是分號,如果誤寫成分號就不能實(shí)現(xiàn)預(yù)想的功能啦。
(3)the_ID()
附注:這五個函數(shù)只能在WordPress的循環(huán)中使用,他們不是全局函數(shù)。
The_ID()
作用是取得每次循環(huán)的編號,輸出的結(jié)果post-數(shù)字編號
The_permalink()
作用是取得文章永久鏈接。這個函數(shù)不帶參數(shù)表示取得當(dāng)前循環(huán)中的文章的鏈接,也可以傳入一個id編號這樣就可以取得該id所對應(yīng)的文章的鏈接。函數(shù)定義在:/wordpress/wp-includes/link-template.php -> line 9
The_title()
取得文章的標(biāo)題,這個函數(shù)的完整參數(shù)列列表the_title($before = ”, $after = ”, $echo = true)
$before 就是指文章標(biāo)題前面要顯示的內(nèi)容,$after就是指文章標(biāo)題后面說要顯示的內(nèi)容。$echo 取值true表示顯示文章標(biāo)題,為false則返回文章的標(biāo)題。
函數(shù)定義在: /latest/wordpress/wp-includes/post-template.php -> line 35
The_time()
the_time()用來獲取并顯示當(dāng)前文章發(fā)布的時間,該函數(shù)后面可以跟控制日期或時間格式的參數(shù),常用的參數(shù)形式如下:
如<?php the_time(’F j, Y’); ?>的調(diào)用形式顯示效果為:六月13, 2009(英文狀態(tài)下顯示June 13, 2009);
如<?php the_time(’g:i a’); ?>的調(diào)用形式顯示效果為:7:09 下午(英文狀態(tài)下顯示7:09 pm);
如<?php the_time(’G:i’); ?>的調(diào)用形式顯示效果為:19:09。
事實(shí)上,除了使用the_time()函數(shù)之外,WordPress還提供了一個具有類似功能的get_the_time()函數(shù)。該函數(shù)除了不具有the_time()函數(shù)的顯示功能之外,其余功能二者完全相同。使用get_the_time()函數(shù)時,如欲將獲取的時間顯示出來,需要使用專用語句。
下面,我們籍此機(jī)會來簡單了解一下WordPress中時間的格式。在WordPress中,通常用于控制時間格式的有以下字符:l, F, j, S, Y, G, g, i, a等等,其詳細(xì)意義如下:
l(小寫L)用來顯示一周之中每一天的名稱,比如星期六,或者在英文中顯示Saturday;
F用來顯示月份名稱,比如六月,或者June;
j用來顯示一月之中的某一天,比如13;
Y用來以4位數(shù)字形式顯示年份,使用y則以末兩位數(shù)字顯示年份,比如2009或09;
G, g, i, a等四個字符通常組合使用,如前例子,有兩種形式:
g:i a以形如7:09 下午或7:09 pm的形式顯示時間;
G:i以形如19:09的24小時進(jìn)制形式顯示時間。
S通常緊跟在j后面,表示是否在一月之中某天之后添加英文后綴(st, nd, th等)。
The_content()
取出文章的內(nèi)容,這個可以帶一個參數(shù),the_content(“more”),作用是如果在文章中有<!–more–>時,就自動截?cái)囡@示more連接,可以查看詳細(xì)信息。
(4)the_category()、the_tags()函數(shù)
the_category()
WordPress|WordPress主題|WordPress插件,‘|’就是相鄰目錄之間的分隔符,這個可以根據(jù)自己的需要來使用不同的符號把他們分隔開來,默認(rèn)情況下是使用空格來分隔的的。
the_tags() 取得文章所屬的標(biāo)簽。
the_tags( $before = ‘Tags: ‘, $sep = ‘, ‘, $after = ” ) $before在標(biāo)簽前面顯示的內(nèi)容,$sep分隔符,$after標(biāo)簽后顯示的內(nèi)容。