国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > Wordpress > 正文

WordPress 不同頁面對應不同模板解決方法

2024-09-07 00:52:15
字體:
來源:轉載
供稿:網友

因為我們的WordPress網站設計的時候,不同的欄目分類樣式不一樣,而且文章頁面也會根據分類不同設計有點區別,這時我們的WordPress就是根據不同的分類制作不同的分類模板和文章模板,本文我們來告訴你如何實現它。

先來看看不同的頁面模板如何制作

我們在制作 WordPress 主題時,很多頁面寫專門的頁面模板,如 tpl-contact.php 專門給頁面 contact 使用。

舉個例子:還是剛才說的 tpl-contact.php,剛好使用 tpl-contact.php 作為模板的頁面的 footer 部分有個電話號碼,而默認的 page.php 和其他頁面模板又不需要,雖然可以給 tpl-contact.php 復制一個 footer.php 改名為其他名(如 footer-contact.php)給 tpl-contact.php 專用(用 get_footer('contact') 調用),但這樣好像有點小題大做了。

我以前不知道 WordPress 本身提供了一個函數來判斷的,我用了比較麻煩的判斷方法,在 footer.php 加了這樣的判斷來實現,經過比較“坎坷”……

從前有座山,山里有個廟,我用了『 get_page_template() 』函數:

  1. if (is_page()){ 
  2.     $page_tpl_name = get_page_template(); //獲取模板文件全路徑 
  3.     $page_tpl_name = split('/tpl-'$page_tpl_name); //分割,??br/>    if ($page_tpl_name[1] == 'contact.php') { 
  4.         /* 顯示電話號碼 */ 
  5.     } 

自從廟里有個老和尚和小和尚后,我用了『 get_post_custom_values() 』來實現:

  1. if (is_page()){ 
  2.     $page_tpl = get_post_custom_values('_wp_page_template'); //獲取字段 _wp_page_template 的數組值 
  3.     if ( $page_tpl[0] == 'tpl-contact.php' ) { //判斷第一個數組值(模板文件名)是否是 tpl-contact.php 
  4.         /* 顯示電話號碼 */ 
  5.     } 

當老和尚開始向小和尚講故事的時候,我才知道 WordPress 本來就有個『 is_page_template() 』函數用來判斷模板文件是否使用時,我立即打住老和尚講無限循環的故事!

  1. if ( is_page_template('tpl-contact.php') ) { 
  2.     /* 顯示電話號碼 */ 

注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') )

實現WordPress不同分類目錄調用不同模板的方法

為了網站的美觀及用途, 類目以及內容頁面的差異性,需要讓不同的頁面使用不同的模版。這時候就需要實現不同的分類調用不同的模板,今天筆者就給大家介紹實現WordPress不同分類調用不同模板的兩個方法,你可以根據情況選擇使用。

方法一:

首先我們要做的就是找到你網站正在使用的主題文件(默認路徑../wp-content/themes/),并用編輯器打開 category.php文件,然后用下面的代碼替換里面除get_header()與get_footer()除外的代碼,并將原來被替換的代碼拷貝出 來并粘貼到你新建的模板文件中,如category_default.php

  1. <?php 
  2.  
  3. $post = $wp_query->post; 
  4.  
  5. if(in_category(’2′)) { 
  6.  
  7. include(TEMPLATEPATH.’/category_2.php’); 
  8.  
  9.  
  10. else if (in_category(’3′)){ 
  11.  
  12. include(TEMPLATEPATH.’/category_3.php’); 
  13. //Vevb.com 
  14.  
  15. else { 
  16.  
  17. include(TEMPLATEPATH.’/category-default.php’); 
  18.  
  19.  
  20. ?> 

最終結果如下:

  1. <?php get_header(); ?> 
  2.  
  3. <?php 
  4.  
  5. $post = $wp_query->post; 
  6.  
  7. if(in_category(’2′)) { 
  8.  
  9. include(TEMPLATEPATH.’/category_2.php’); 
  10.  
  11. else if (in_category(’3′)){ 
  12.  
  13. include(TEMPLATEPATH.’/category_3.php’); 
  14.  
  15.  
  16. else { 
  17.  
  18. include(TEMPLATEPATH.’/category-default.php’); 
  19.  
  20. ?> 
  21.  
  22. <?php get_footer(); ?> 

這段代碼函數的主要作用就是根據分類目錄的ID去判斷并調用對應的模板,如果分類目錄ID為2,則為這個分類目錄調用 category_2.php模板,如果ID為3,則調用category_3.php模板,如果以上兩者都不是則調用category- default.php這個默認的模板。當然了,如果你如果需要給更多的分類目錄指定模板,你只需要再添加一個else if語句既可,如下面代碼所示:

  1. <?php get_header(); ?> 
  2.  
  3. <?php 
  4.  
  5. $post = $wp_query->post; 
  6.  
  7. if(in_category(’2′)) { 
  8.  
  9. include(TEMPLATEPATH.’/category_2.php’); 
  10.  
  11. else if (in_category(’3′)){ 
  12.  
  13. include(TEMPLATEPATH.’/category_3.php’); 
  14.  
  15.  
  16. else if (in_category(’6′)){ 
  17.  
  18. include(TEMPLATEPATH.’/category_6.php’); 
  19.  
  20.  
  21. else { 
  22.  
  23. include(TEMPLATEPATH.’/category-default.php’); 
  24.  
  25.  
  26. ?> 
  27.  
  28. <?php get_footer(); ?> 

另外要注意的就是category_6.php等這些模板文件的調用路徑了,如果你想單獨新建一個文件夾來放這些分類目錄模板文件,那上面代碼中也要一起修改。

方法二:

這是一種比較簡便的調用方法,加入wordpress這個分類的ID=1, 那么就新建一個模板category-1.php,系統會自動調用這個ID的,重點是記住這個文件命名格式category-*.php,這里的*代表著 category的ID。怎么樣,簡單的不行了吧?

到這里為不同的分類目錄調用不同的模板就結束了,最后你要做的就是根據自己的完美思想去定義wordpress模板文件了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 全椒县| 沾益县| 北宁市| 攀枝花市| 彰武县| 格尔木市| 霍山县| 日照市| 行唐县| 瑞昌市| 古丈县| 措美县| 万全县| 康平县| 芜湖县| 托克托县| 杨浦区| 吉安县| 汝阳县| 叶城县| 江城| 前郭尔| 巨鹿县| 会昌县| 德格县| 龙南县| 改则县| 景宁| 安塞县| 涞源县| 武鸣县| 台中县| 洪洞县| 辽源市| 阜阳市| 怀安县| 广东省| 白朗县| 绥滨县| 彭州市| 佛教|