2017-04-18 1 views
0

プラグインまたは別のテンプレートファイルを設定せずに子ページのサイドバーを交換してください。私はプラグインを使用せずに特定の親の子ページにロードするために別のサイドバーを取得しようとしている

これは私がこれまで持っているものです。

register_sidebars(1, array(
'name' => 'Other Sidebar', 
'id' => "other-sidebar", 
'before_widget' => '<li class="widget">', 
'after_widget' => '</li>', 
'before_title' => '<span class="widgettitle">', 
'after_title' => '</span>' 
)); 

if ($post->post_parent == '1164') { 
dynamic_sidebar('other-sidebar'); 
} 

しかし、私が代わりにロードされているデフォルトのサイドバーを置き換えるために、いくつかの種類のフィルタを使用する必要がある場合、私は思ったんだけど?それが正しいかどうかはあまり確かではありません。

答えて

1

あなたがテーマ(または子テーマ)を編集することができますので、あなたがしたいカスタムサイドバーで現在のページテンプレートをオーバーライドしますPage Templateを追加することができます。

<?php 
/* 
Template Name: Custom Sidebar Page // All versions 
Template Post Type: page // 4.7+ only 
*/ 

// Page code here with the sidebar you want... 
?> 

<aside id="secondary" class="widget-area" role="complementary"> 
    <?php dynamic_sidebar('other-sidebar'); ?> 
</aside><!-- #secondary --> 

次に、ページの編集とその子ページで、このテンプレートを必要なものとして設定します。

+0

ええと、私は別のテンプレートページを使用しないように設定しようとしていました。それは、おそらく親テーマ内のものを混乱させるからです。しかし、何かあれば、私はそれをしなければならないかもしれません。 – ultraloveninja

+0

は親テーマのページテンプレートの内容をコピーして、ちょうどあなたがしたい部分を交換してください。また、デフォルトのサイドバーの登録を解除し、同じ名前であなたを登録し、それはどこでも、デフォルトのサイドバーを削除しますことができます。 –

+0

右は、私は新しいものとし、特定のページにのみ、現在のサイドバーを交換したいです。 – ultraloveninja

関連する問題