2016-07-15 41 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階層構造をエミュレートしようとしましたが、それは起こっていませんでした。カスタム投稿タイプを使用することで、リストページと個別ページの両方にテンプレートを割り当てることができました。そして、URLにポストタイプの文字列を探すjavascriptを書きました。検出された場合は、current_page_parent/ancestorクラスを適切なメニュー項目に追加します。完璧でも完全に未来的でもないが、それは仕事を終わらせる。

誰かがより良い解決策を思いついたら、投稿してください!

2

あなただけtemplate1.phpとあなたのテーマのルートにtemplate2.phpとしてレンダリングcategory-2.phpとしてレンダリングcategory-1.phpを作成する必要があります。

詳細については、template hierarchyを参照してください。

+0

カテゴリリストページのテンプレートを指定する方法はありますか。私は "リスト"ページと "個々の"ページのための別のテンプレートが必要です。しかし、それは代わりに私がちょうどカスタムポストタイプを使うべきかどうか疑問に思います。 – supernaut

関連する問題