另一种方法是注册多个侧栏,然后有条件地调用每个侧栏。e、 g。
注册侧栏:
// Registers Primary Widget Area
register_sidebar(
array (
\'name\' => \'Sidebar\',
\'id\' => \'sidebar\',
\'description\' => __\'Primary sidebar widget area\',
\'before_widget\' => \'<div class="widget">\',
\'after_widget\' => \'</div>\',
\'before_title\' => \'<h3>\',
\'after_title\' => \'</h3>\',
)
);
// Registers Primary Widget Area
register_sidebar(
array (
\'name\' => \'{Post Type} Sidebar\',
\'id\' => \'sidebar-{post-type}\',
\'description\' => __\'{Post Type} sidebar widget area\',
\'before_widget\' => \'<div class="widget">\',
\'after_widget\' => \'</div>\',
\'before_title\' => \'<h3>\',
\'after_title\' => \'</h3>\',
)
);
(注意:更换
{post-type}
使用您的CPT的实际名称/段塞,视情况而定。)
然后,在模板文件中:
$sidebar_id = ( \'custom-post-type-slug\' == get_post_type() ? \'sidebar-{post-type}\' : \'sidebar\' );
dynamic_sidebar ( $sidebar_id );
因此,您不需要为您的CPT创建单独的模板文件;但是,您将在中显示两个单独的小部件区域
Dashboard -> Appearance -> Widgets
, 您必须单独填充。
EDIT
您如何显示您的CPT?
如果您正在使用archive-{post-type}.php
和single-{post-type}.php
, 那么你只需打电话dynamic_sidebar( \'sidebar-{post-type}\' )
在这些模板文件中(或注册时命名的任何内容)。
否则,如果您使用的是普通archive.php
和single.php
要显示您的CPT,请使用我最初建议的条件代码。