我有基于创建的分类术语生成的动态侧栏。
CLASS EXCERPT:
public function __construct() {
add_action(\'widgets_init\', array($this, \'checkForActiveSidebarAndMenu\'));
}
public function checkForActiveSidebarAndMenu() {
//global $wp_registered_sidebars;
//print_r($wp_registered_sidebars);
$terms = get_terms(array(\'taxonomy\'=>\'minisite\',\'hide_empty\'=>false));
print_r($terms);
foreach($terms as $term) {
$this->registerSidebars($term->term_id);
//$this->registerMenu($term->term_id);
update_term_meta($term->term_id, \'sidebar_active\', \'1\');
//update_term_meta($term->term_id, \'menu_active\', \'1\');
}
}
public function registerSidebars($mini_site_id) {
// Register main content sidebar, [MINISITENAME]_[TERMID]_HOMEPAGE
// Register right aligned sidebar, [MINISITENAME]_[TERMID]_RIGHT_SIDEBAR
$mini_site_name = get_term($mini_site_id, \'minisite\');
$mini_site_name = $mini_site_name->slug;
$sidebar_name = $mini_site_name . \'_\' . $mini_site_id;
$args = array(
\'id\'=>$sidebar_name . \'_HOMEPAGE\',
\'name\'=>$sidebar_name . \' HOMEPAGE\'
);
register_sidebar($args);
//var_dump($sidebar);
$args = array(
\'id\'=>$sidebar_name . \'_RIGHT_SIDEBAR\',
\'name\'=>$sidebar_name . \' RIGHT SIDEBAR\'
);
register_sidebar($args);
}
此函数用于注册侧栏。“get\\u terms”中的查询数组将更改。
这是我最初编写的第二个函数,我的印象是侧边栏只需要注册一次,而不是每个“widgets\\u init”
上面的代码每次运行widgets\\u init时都会创建侧栏,这意味着我可以用小部件填充侧栏,刷新,新的侧栏就会出现,旧的侧栏就会消失。
我做错了什么?我希望能够注册一个动态侧边栏,并让它一直保留到我注销它为止。
其他:
类很好,方法正在按其应该的方式执行。
分类法“minisite”是我的分类法,它工作正常,它在“init”上作为优先级0加载,以允许widgets\\u init正确运行该分类法。