因?yàn)槲覀兊腤ordPress網(wǎng)站設(shè)計的時候,不同的欄目分類樣式不一樣,而且文章頁面也會根據(jù)分類不同設(shè)計有點(diǎn)區(qū)別,這時我們的WordPress就是根據(jù)不同的分類制作不同的分類模板和文章模板,本文我們來告訴你如何實(shí)現(xiàn)它。
先來看看不同的頁面模板如何制作
我們在制作 WordPress 主題時,很多頁面寫專門的頁面模板,如 tpl-contact.php 專門給頁面 contact 使用。
舉個例子:還是剛才說的 tpl-contact.php,剛好使用 tpl-contact.php 作為模板的頁面的 footer 部分有個電話號碼,而默認(rèn)的 page.php 和其他頁面模板又不需要,雖然可以給 tpl-contact.php 復(fù)制一個 footer.php 改名為其他名(如 footer-contact.php)給 tpl-contact.php 專用(用 get_footer('contact') 調(diào)用),但這樣好像有點(diǎn)小題大做了。
我以前不知道 WordPress 本身提供了一個函數(shù)來判斷的,我用了比較麻煩的判斷方法,在 footer.php 加了這樣的判斷來實(shí)現(xiàn),經(jīng)過比較“坎坷”……
從前有座山,山里有個廟,我用了『 get_page_template() 』函數(shù):
- if (is_page()){
- $page_tpl_name = get_page_template(); //獲取模板文件全路徑
- $page_tpl_name = split('/tpl-', $page_tpl_name); //分割,??br/> if ($page_tpl_name[1] == 'contact.php') {
- /* 顯示電話號碼 */
- }
- }
自從廟里有個老和尚和小和尚后,我用了『 get_post_custom_values() 』來實(shí)現(xiàn):
- if (is_page()){
- $page_tpl = get_post_custom_values('_wp_page_template'); //獲取字段 _wp_page_template 的數(shù)組值
- if ( $page_tpl[0] == 'tpl-contact.php' ) { //判斷第一個數(shù)組值(模板文件名)是否是 tpl-contact.php
- /* 顯示電話號碼 */
- }
- }
當(dāng)老和尚開始向小和尚講故事的時候,我才知道 WordPress 本來就有個『 is_page_template() 』函數(shù)用來判斷模板文件是否使用時,我立即打住老和尚講無限循環(huán)的故事!
- if ( is_page_template('tpl-contact.php') ) {
- /* 顯示電話號碼 */
- }
注1:is_page_template 不能用在 loop 里面,如果之前有 loop,先在 loop 后面使用 wp_reset_query(),然后再使用 is_page_template
注2:如果模板文件在某個文件夾里,如 template/tpl-contact.php,那么這樣 if ( is_page_template('template/tpl-contact.php') )
實(shí)現(xiàn)WordPress不同分類目錄調(diào)用不同模板的方法
為了網(wǎng)站的美觀及用途, 類目以及內(nèi)容頁面的差異性,需要讓不同的頁面使用不同的模版。這時候就需要實(shí)現(xiàn)不同的分類調(diào)用不同的模板,今天筆者就給大家介紹實(shí)現(xiàn)WordPress不同分類調(diào)用不同模板的兩個方法,你可以根據(jù)情況選擇使用。
方法一:
首先我們要做的就是找到你網(wǎng)站正在使用的主題文件(默認(rèn)路徑../wp-content/themes/),并用編輯器打開 category.php文件,然后用下面的代碼替換里面除get_header()與get_footer()除外的代碼,并將原來被替換的代碼拷貝出 來并粘貼到你新建的模板文件中,如category_default.php
- <?php
- $post = $wp_query->post;
- if(in_category(’2′)) {
- include(TEMPLATEPATH.’/category_2.php’);
- }
- else if (in_category(’3′)){
- include(TEMPLATEPATH.’/category_3.php’);
- } //Vevb.com
- else {
- include(TEMPLATEPATH.’/category-default.php’);
- }
- ?>
最終結(jié)果如下:
- <?php get_header(); ?>
- <?php
- $post = $wp_query->post;
- if(in_category(’2′)) {
- include(TEMPLATEPATH.’/category_2.php’);
- }
- else if (in_category(’3′)){
- include(TEMPLATEPATH.’/category_3.php’);
- }
- else {
- include(TEMPLATEPATH.’/category-default.php’);
- }
- ?>
- <?php get_footer(); ?>
這段代碼函數(shù)的主要作用就是根據(jù)分類目錄的ID去判斷并調(diào)用對應(yīng)的模板,如果分類目錄ID為2,則為這個分類目錄調(diào)用 category_2.php模板,如果ID為3,則調(diào)用category_3.php模板,如果以上兩者都不是則調(diào)用category- default.php這個默認(rèn)的模板。當(dāng)然了,如果你如果需要給更多的分類目錄指定模板,你只需要再添加一個else if語句既可,如下面代碼所示:
- <?php get_header(); ?>
- <?php
- $post = $wp_query->post;
- if(in_category(’2′)) {
- include(TEMPLATEPATH.’/category_2.php’);
- }
- else if (in_category(’3′)){
- include(TEMPLATEPATH.’/category_3.php’);
- }
- else if (in_category(’6′)){
- include(TEMPLATEPATH.’/category_6.php’);
- }
- else {
- include(TEMPLATEPATH.’/category-default.php’);
- }
- ?>
- <?php get_footer(); ?>
另外要注意的就是category_6.php等這些模板文件的調(diào)用路徑了,如果你想單獨(dú)新建一個文件夾來放這些分類目錄模板文件,那上面代碼中也要一起修改。
方法二:
這是一種比較簡便的調(diào)用方法,加入wordpress這個分類的ID=1, 那么就新建一個模板category-1.php,系統(tǒng)會自動調(diào)用這個ID的,重點(diǎn)是記住這個文件命名格式category-*.php,這里的*代表著 category的ID。怎么樣,簡單的不行了吧?
到這里為不同的分類目錄調(diào)用不同的模板就結(jié)束了,最后你要做的就是根據(jù)自己的完美思想去定義wordpress模板文件了。
新聞熱點(diǎn)
疑難解答
圖片精選