2014-04-01 73 views
1

我有這行代碼是完美的作品:的WordPress/PHP通配符if語句

<?php if (in_category('CATEGORY-SUFFIX')) { get_header('SUFFIX'); } else { get_header(); } ?> 

除此之外,我有大量的類,並想用一個「通配符」的類別名稱並且根據在類別名稱中只找到幾個字符的標題開關。

更多的東西一樣:

<?php if (in_category('*SUFFIX')) { get_header('SUFFIX'); } else { get_header(); } ?> 

回答

0

分類存儲在數據庫中,這樣你就需要這樣的東西:

https://codex.wordpress.org/Function_Reference/get_category

這會幫助你得到你所訪問的頁面的名稱在頁面加載。然後,你可以這樣做:

get_header($cat_name);

編輯:

既然你正在尋找只是一個後綴,要做到這一點的最好辦法是要麼像strripos或正則表達式中的匹配如果/ else結構或根據您的需要的switch語句:

//lets assume you want to catch all categories that end with ed (like teached) 
if(strripos($cat_name,'ed', -2)!== FALSE){ 
    get_header('ed-header'); 
} elseif(...){ 
    ... 
} 
+0

我有if語句的工作...我只需要知道沒有如何指定的確切名稱,而只是它的一部分 - 使用變量代替部分食物血腥的名字。 – esscott

+0

噢,我在這裏誤解了你。我以爲你有每個類別的動態標題。如果是這種情況,你需要做一些類似strpos的事情,並檢查後綴。我會更新我的答案。 – Shawn

+0

這看起來不錯,但我得到一個錯誤:注意:未定義的變量:cat_name在/var/www/site.com/htdocs/wp-content/themes/theme/single.php在第1行。我不確定「$ cat_name」是wordpress的正確請求 - 正在使用「in_category」 – esscott