2011-12-12 26 views
0

當用戶登陸專用文章/固定鏈接頁面時,我試圖讓我們的WP主題在特定側欄中調用。例如:如果用戶到達一個分類爲「紅色」的帖子的固定鏈接/專用文章頁面,則該主題將查找帖子類別,確認該類別爲紅色,然後找到並拉入我已定義爲「紅色」的側邊欄。PHP/WordPress:如何將類別特定的側欄拉入主題

剛開始使用這個項目,希望對我在下面描述的內容有所瞭解。

這是我認爲的代碼看起來應該實現的是:

<?php if (is_category()){ 
$current_cat = intval(get_query_var('cat')); 
get_sidebar($current_cat); //for category red get sidebar-red.php 
} 
?> 

再吃一塊拼圖:

我想在另外的說法添加,這樣如果帖子是未分類(即我們沒有爲任何原因對帖子進行分類),它將拉入默認的側邊欄。我認爲代碼應該喜歡這樣的東西,但我不知道如何定義「不存在的類別」。基本上我想告訴wordpress尋找職位類別。如果發現一個不存在的話,我希望它在側邊欄,如default.php拉

<?php 
if (is_category()){ 
    $current_cat = intval(get_query_var('cat')); 
    get_sidebar($current_cat); } 

elseif (is_category(**argument for nonexistent category**)) 
    $current_cat = intval(get_query_var('cat')); 
    get_sidebar-default.php; } 
?> 

回答

0

你可以在你的CSS定義的不同的側邊欄的類。

給出你想要匹配的類別,該類別與該類別的子彈相同。在你的模板中,使用帖子的category-slug定義側欄div的類。

下面是關於如何讓塞了一下:

<?php 
if (is_category()) { 
$cat = get_query_var('cat'); 
$yourcat = get_category ($cat); 
echo 'the slug is '. $yourcat->slug; 
} 
?> 

所以,你的側邊欄的div會是這樣的:

<div class="<?php echo yourcat->slug; ?> sidebar"></div> 

所以,你已經給你的側邊欄兩個班,一個叫sidebar一個由任何類別決定!

希望這是有道理的。

1

您應該使用in_category而不是is

例如:

<?php 
if (in_category('fruit')) { 
    get_sidebar('1'); 
} elseif (in_category('vegetables')) { 
    get_sidebar('2'); 
} else { 
    // do nothing or something 
      // ... 
} 
?> 

http://codex.wordpress.org/Function_Reference/in_category

<?php in_category($category, $_post) ?> 

$category

(混合)(要求)的一個或由ID (整數)指定的多個類別,名稱或金屬塊(字符串)或這些數組 默認值:無

+0

你認爲這會工作一樣好? <?php get_the_category($ id)?> <?php require_once('sidebar_'。$ category-> cat_ID。'.php')?> – user1093049

+0

這是很好的imo,只需添加一些條件檢查以檢查它是否在include/require之前設置/存在。 – Wyck

0

你甚至可以使用Category Templates,讓您創建類別的red.php和類別blue.php文件

相關問題