如何获取特定类别档案和帖子的有条件侧栏

时间:2021-02-13 作者:David Borrink

解决方案:因为我忽略了一个我不知道存在的基本特性。LOL.老兵大脑衰退。

我尝试做点什么很管用,我能不能请一双新的眼睛看看我错过了什么?谢谢

我正在尝试使用Genesis简单边栏创建一些有条件的边栏,并修改2014年发布的WPBeachs的代码片段。我想做的是有一些自定义侧边栏,专门用于一些特定类别的档案和它们的单个帖子。

我在每个自定义侧栏中创建了一个单独的测试小部件,编写了代码以使用两个不同的类别和条件(对归档页面使用is\\u类别,对单个帖子使用in\\u类别),并对所有其他类别使用主侧栏的回退。结果是侧边栏在这两个类别上工作(其中一个是父类别,我想级联到它的子类别),但在这两个类别中的单个帖子上,结果是主侧边栏。单亲类别的子类别存档也不显示自定义侧栏。所以这算是可行的,但并不像我预期的那样。

我有一个条件is\\u single、is\\u category和is\\u tag来启动进程。这是代码。

// Custom sidebars with conditionals for post categories 

add_action( \'genesis_before_sidebar_widget_area\', \'themeprefix_remove_sidebar\' ); // starts the ball rolling

function themeprefix_remove_sidebar() {
if ( is_single() || is_category() || is_tag() ) {  // set your connditionals here
remove_action( \'genesis_sidebar\', \'ss_do_sidebar\' );     // removes Simple Sidebar
remove_action( \'genesis_sidebar\', \'genesis_do_sidebar\' );   // removes Genesis Default sidebar 
add_action( \'genesis_sidebar\', \'sb_add_sidebar\' ); // adds alternative sidebar in function below
    }   
}
// Alternative Sidebar
function sb_add_sidebar() {
    if( is_category(\'christian-faith\') || in_category(\'christian-faith\') ) {
                 dynamic_sidebar( \'faith-sidebar\' );
                 }
    elseif( is_category(\'classroom\') || in_category(\'classroom\') ) {
                 dynamic_sidebar( \'teaching-in-the-classroom-sidebar\' );
                 }
    else { 
                 dynamic_sidebar( \'sidebar\' );
                 }            
}
下面是指向两个示例类别页面的链接。

https://sallieborrink.com/category/christian-faith

https://sallieborrink.com/category/classroom/

Oe首先,我有两个相同的测试小部件。在第二个测试中,我把测试小部件放在第一位,我妻子在它后面放了一堆小部件。结果是显示主侧栏,然后在完成后(最后一个小部件是“我们的历史日程表”),自定义侧栏从测试小部件和她添加的集合开始。

所以我不知道为什么我在一个上得到了两个小部件,在另一个上得到了两个不同的集合。很明显,这里有些东西我不明白。

1 个回复
最合适的回答,由SO网友:David Borrink 整理而成

有时,即使您是一位经验丰富的用户,也没有意识到内置功能的存在。我忽略了类别有一个侧栏选择功能。

难怪没有人回答。