2016-07-15 49 views
2

我想掛鉤到save_post函數,找出帖子在哪個類別,然後爲每個類別的帖子分配一個不同的頁面模板。我嘗試了大約30個不同的版本,但沒有運氣。有人請幫助指出我的方向正確嗎?wordpress functions.php - 爲每個帖子類別使用不同的頁面模板

add_action('save_post', 'assign_custom_template'); 
function assign_custom_template($post_id) { 
    $category = get_the_category($post_id); 
    $cat_id = $category->cat_ID; 
    if($cat_id == 1) { 
     update_post_meta($post_id, "_wp_page_template", "template1.php"); 
    } 
    if($cat_id == 2) { 
     update_post_meta($post_id, "_wp_page_template", "template2.php"); 
    } 
} 

回答

0

我試圖模仿我的帖子&自定義帖子類型之間的官方WP層次結構方案,但它只是沒有發生。我最終使用自定義帖子類型,以便我可以將模板分配給「列表」頁面和「個人」頁面。然後我編寫了一些javascript來查找URL中的post-type字符串,如果檢測到它,則會將current_page_parent /祖先類添加到適當的菜單項中。不完美或完全面向未來,但它完成了工作。

如果有人想出了更好的解決方案,請發佈!

2

你只需要創建category-1.php其呈現爲template1.phpcategory-2.php這在你的主題根渲染爲template2.php

有關更多信息,請參閱template hierarchy

+0

是不是你如何爲類別列表頁面指定模板?我需要單獨的「列表」頁面和「個人」頁面的模板。但是,這讓我懷疑我是否應該只使用自定義帖子類型呢? – supernaut

相關問題