wordpress 不同分類下的文章使用不同模版

1、根據模板文件名進行判斷
a、將下面的代碼添加到當前主題的 functions.php 文件
/**

*/
//定義模板文件所在目錄爲 single 文件夾
define(SINGLE_PATH, TEMPLATEPATH . '/single');
//自動選擇模板的函數

function wpdaxue_single_template($single) {    global $wp_query, $post;    //通過分類別名或ID選擇模板文件
    foreach((array)get_the_category() as $cat) :        if(file_exists(SINGLE_PATH . '/single-cat-' . $cat->slug . '.php'))            return SINGLE_PATH . '/single-cat-' . $cat->slug . '.php';        elseif(file_exists(SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php'))            return SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php';    endforeach;
}

//通過 single_template 鉤子掛載函數
add_filter('single_template', 'wpdaxue_single_template');
b、在當前主題的根目錄創建一個名爲 single 的文件夾,然後根據不同分類創建不同的文件,命名格式爲 single-cat-[分類別名或ID].php。請記得爲所有分類創建自己的模板文件。

2、使用 in_category() 進行判斷
in_category() 函數可以通過分類別名或ID判斷當前文章所屬的分類,而且可以直接在循環(Loop)內部和外部使用。

如果是單個分類 ID ,比如ID 爲 2 ,可以這樣寫

in_category(2)
如果是單個分類別名,比如別名爲 themes,可以這樣寫

in_category('themes')
如果是多個ID,可以這樣寫

in_category( array( 2,3,7) )
如果是多個別名,可以這樣寫

in_category( array( 'themes','plugins','develop') )
們可以在主題的根目錄創建3個文章模板文件,分別命名爲 single001.php , single002.php 和 single003.php,然後我們希望 ID 爲 2 和 3 的分類使用 single001.php,ID爲 7 的分類使用 single002.php ,其他分類使用 single003.php

<?php if ( in_category(array( 2,3 )) ) {
    get_template_part('single001' );
} elseif ( in_category( 7 )) {
    get_template_part('single002' );
} else {
    get_template_part('single003' );
}?>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章