2010-03-17 117 views
7

我想在我的主題的functions.php文件中添加一個指令,它將一個類名添加到wordpress body標籤中。有沒有一個內置的API方法呢?添加一個自定義類名到Wordpress body標籤?

例如,我的身體標記代碼是...

<body <?php if(function_exists("body_class") && !is_404()){body_class();} else echo 'class="page default"'?>> 

而且這將導致以下被寫入到body標籤(這取決於該頁面出現的上下文(頁,張貼,登錄等)

<body class="home blog logged-in"> 

根據我使用的是當時的子主題,我希望它是...

<body class="home blog logged-in mychildthemename"> 
+1

我不知道我明白你的問題 - 我只花了不期而遇的經典主題,和''標籤輸出直接在'header.php'文件中。你究竟在尋找一種API方法來存儲和獲取類名? – 2010-03-17 21:39:23

+0

嗨pekka,我已經將我的身體標記添加到問題以獲得更好的說明。我只是想挖掘body_class()函數來添加我的子主題名稱,以便我可以在主主題中使用條件CSS,該條件僅在特定的子主題處於活動狀態時適用。 – 2010-03-17 21:45:19

回答

17

可以使用body_class過濾器,像這樣:

function my_plugin_body_class($classes) { 
    $classes[] = 'foo'; 
    return $classes; 
} 

add_filter('body_class', 'my_plugin_body_class'); 

雖然,很明顯,你的主題需要調用相應的body_class功能。

+0

正是我在找的東西。感謝Richard! – 2010-03-17 21:56:37

+0

* NB *:確保您的主題body標籤(通常在header.php中)調用函數body_class()'>' – Duncanmoo 2014-01-29 12:19:15

-1

只需編輯您的主題的header.php並在那裏更改類(手動或根據某些預設的邏輯規則)。

1

如果您想在管理區域中添加類到身體標記時,請記住使用admin_body_class鉤子。請注意,這是它的工作方式略有不同的過濾器,因爲它通過一個類的字符串,而不是一個數組,所以你的代碼應該是這樣的:

add_filter('admin_body_class', 'my_admin_body_class'); 
function my_admin_body_class($classes) { 
    return $classes . ' my_class'; 
} 
0

試試這個..

add_filter('body_class', 'custom_class'); 
function custom_class($classes) { 
    if (!is_front_page()) { 
     $classes[] = 'example'; 
    } 
    return $classes; 
} 
相關問題