2017-04-21 26 views
1

我有一個名爲「magazine」的類別,我創建了這個類別的一些文章。這是我的文章的鏈接http://www.example.com/magazine/article-one/我想檢查在function.php如果我在這個類別或不,因爲我使用if(is_category('magazine')){die('I am in magazine category');},但我什麼都沒有。我嘗試使用is_singleis_page,但所有此功能不起作用。is_category,is_single,is_page不能在function.php中工作

+0

你可以顯示你在functions.php中使用的代碼嗎?你把它放在一個函數中嗎?把它掛到鉤子上? – RST

+0

那麼,究竟是什麼「無所事事」?看到一個白頁(可能是解析器錯誤)?結果照常(可能是錯誤的主題活動)?還要別的嗎?這是提供任何答案的必要條件。 – Boldewyn

回答

1

是這些功能將不會直接的functions.php工作,對於需要使用他們像下面

add_filter('pre_get_posts', 'limit_archive_posts' ,5); 
function limit_archive_posts($query){ 
    if ($query->is_category) { 
     $query->set('posts_per_page', 3); 
    } 
    if($query->is_single == 1){ 
     $query->set('posts_per_page', 1); 
    } 
    return $query; 
} 

或wp_enqueue_scripts,wp_head,wp_footer過濾器中使用它們。

+0

讓我們知道你是如何繼續添加你試過的代碼 – 1616

+0

嗨,我waw使用上面的代碼,而不是'if($ query-> is_category)'我正在使用'if('magazine'== $ query- > query_vars ['category_name'])'現在就行了。 –

+0

很高興聽到它的工作:D –

0

試試這個下面的代碼

$category_object=get_queried_object(); 
$category_term_id = $category_object->term_id; 
if($category_term_id == "your magazine term_id")  
{ 
    echo 'I am in magazine category'; 
} 
+0

嗨,謝謝你的重播,但'category_object'返回爲我空! –

+0

請分享您的網址。 –

+0

我的網址看起來像:'http:// demo.muretprestige.com/magazine/magazine-mur-prestige-n1 /' –

1

不能在function.php這些功能,否則他們不會有任何意思。 is_category檢查類別。它將獲得分類頁面查詢的類別。

您可以使用這個動作做你的工作

add_filter('pre_get_posts', 'limit_archive_posts' ,5); 
function limit_archive_posts($query){ 
    if ('magazine' === $query->is_category) { 

    } 
    if(1 === $query->is_single){ 

    } 
    return $query; 
} 

,你可以把你的功能邏輯主題functions.php ,你可以使用taxonomy.phparchive.php 這個條件來渲染適當的邏輯基礎條件

if(is_category('magazine')){ 
    call_my_category_work_function(); 
} 
+0

嗨,我不明白爲什麼我必須做這個代碼'if(is_category('magazine')){call_my_category_work_function(); } in taxonomy.php ?.我認爲過濾器'pre_get_posts'工作。 –

+0

如果有人是初學者,而不理解'行動'和'過濾器'好,這些可以通過這種方式完成。 在functions.php中添加登錄部分以及在模板中特定於模板的工作要簡單得多。 –

相關問題