我如何測試一個wordpress分類術語/術語頁面是另一個術語的孩子?例如,如果我有一個分層次的「投資組合類別」分類。我的頂級條款是「數字」和「打印」。在打印下,我有「電視」等幾個。如果我在「電視」檔案中,is_tax()與is_tax('television')一樣正確,但不是is_tax('print')。基本上我希望'電視'和它的兄弟姐妹以一種方式行事,而'數字'的孩子則表現另一種行爲。wordpress測試如果自定義分類術語是另一個術語的孩子
這是可能的,還是最好由單獨的分類法服務?
我如何測試一個wordpress分類術語/術語頁面是另一個術語的孩子?例如,如果我有一個分層次的「投資組合類別」分類。我的頂級條款是「數字」和「打印」。在打印下,我有「電視」等幾個。如果我在「電視」檔案中,is_tax()與is_tax('television')一樣正確,但不是is_tax('print')。基本上我希望'電視'和它的兄弟姐妹以一種方式行事,而'數字'的孩子則表現另一種行爲。wordpress測試如果自定義分類術語是另一個術語的孩子
這是可能的,還是最好由單獨的分類法服務?
在那個頁面上說archive-portfolio-categories.php或者只是archive.php ..我相信你可以使用全局變量$ term來確定你是否在子頁面上。例如:
<?php
$term = get_term_by('slug', get_query_var('term'));
if($term->parent > 0)
{
// THIS IS A CHILD PAGE
// .. DO STUFF HERE..
}
else
{
// THIS IS THE PARENT PAGE
// .. DO OTHER STUFF HERE..
}
?>
如果您只有2個頂層項目使用slug'print'和'digital',這應該有效。此代碼也適用於更深層的分類樹。
$current_tax = wp_get_post_terms($post->ID, 'portfolio-categories', array());
$current_tax_id = $curcat[0]->term_id;
$digital = get_term_by('slug', 'digital', 'portfolio-categories', OBJECT);
$print = get_term_by('slug', 'print', 'portfolio-categories', OBJECT);
$sub_digital = get_term_children($digital->term_id, 'portfolio-categories');
$sub_print = get_term_children($print->term_id, 'portfolio-categories');
// this variable will hold the current top-level taxonomy term ID.
$parent_cat_id = in_array($current_tax_id, $sub_digital) ? $digital->term_id : $print->term_id;
請注意,我已更改爲我自己的工作代碼中的代碼。可能有小錯字。所以請檢查一下,不要盲目複製粘貼這個。
整潔的解決方案。感謝分享。 – helgatheviking 2012-11-07 13:35:56
未出現全局$項。 但是你可以使用全局$ wp_query,您可以在taxonomy-測試{}稅.PHP:
<?php
global $wp_query;
var_dump($wp_query);
?>
我們看到了$ wp_query-> queried_object->母公司和:
<?php
global $wp_query;
var_dump($wp_query);
if($wp_query->queried_object->parent == '0' && is_tax()){
//parent
}else {
//child
}
?>
不相當。我把它放在我的taxonomy.php頁面和電視稅(這是'print'的孩子),它似乎仍然認爲它是一個父頁面。 print_t($ term)僅顯示術語名稱,而不是對象 – helgatheviking 2011-06-28 15:19:39
對不起我的錯誤..您需要先執行此操作: $ term = get_term_by('slug',get_query_var('term'),get_query_var('taxonomy' )); 這會讓你獲得$ term變量,從而獲得$ term-> parent等。 – 2011-06-29 09:33:19
真棒!這樣可行。你可以編輯你的答案,所以我可以接受它嗎? – helgatheviking 2011-06-29 14:39:25