设置默认设置时在分类页面上显示不同的侧栏

时间:2012-03-28 作者:WouterB

我的主题包含以下代码sidebar.php. 现在,我想确保当有人查看自定义分类法时,我可以显示不同的侧栏。

//Default sidebar
$selected_sidebar_replacement = \'Sidebar Widgets\';

//If is page or single
if(is_singular()){
global $wp_query;
$post = $wp_query->get_queried_object();
$selected_sidebar_replacement = get_post_meta($post->ID, \'sbg_selected_sidebar_replacement\', true);

//If default selected
if($selected_sidebar_replacement == \'0\' || $selected_sidebar_replacement == \'\'){
$selected_sidebar_replacement = \'Sidebar Widgets\';
                    }

// Reset the global $the_post
wp_reset_query();

                }
我已经试过下面的(上面的//If default selected), 其中,“产品品牌”是自定义分类法的鼻涕虫,“齿轮”是一个现有的(并在其他页面上工作)侧边栏,但它不起作用。如有任何建议,将不胜感激。

if(is_tax( \'product-brand\' )){ $selected_sidebar_replacement = \'Gear\'; }
已满sidebar.php 粘贴箱上的代码:http://pastebin.com/CLD9DrUz

3 个回复
最合适的回答,由SO网友:WouterB 整理而成

我设法在我称之为分类法(非特定)的地方找到了一些有用的东西,并将其与我正在查看的当前分类法进行了比较。这意味着要进行太多的迭代,所以我删除了它,并基本上添加了一个条件来检查custom\\u post\\u类型。

SO网友:ThaWolf

为什么不简单地创建一个新的侧边栏。。。这对你来说会更清楚,也会减轻你的侧边栏。php。

在主题文件夹中创建一个文件:侧边栏thenameyouwant。php在此处输入边栏代码,如下所示:

    <div id="secondary">
        <?php dynamic_sidebar( \'sidebar-xyz\' ); ?>
    </div><!-- #secondary .widget-area -->
在主题功能中。php。。。添加:

    register_sidebar( array(
    \'name\' => \'Custom posts sb\',
    \'id\' => \'sidebar-xyz\',
    \'description\' => \'blablabla\',
    \'before_widget\' => \'<aside id="%1$s" class="widget %2$s">\',
    \'after_widget\' => "</aside>",
    \'before_title\' => \'<h3 class="widget-title">\',
    \'after_title\' => \'</h3>\',
) );
然后在自定义分类页面中调用右侧的侧栏

<?php get_sidebar(\'thenameyouwant\');    ?>
它将自动从侧边栏加载代码,并显示您想要的名称。php

当然,新的边栏将出现在您的管理外观>小部件中。。。您可以将小部件滑入其中,或者直接编辑新的侧栏文件。如果你想加载小部件,你必须像上面那样调用dynamic\\u边栏php。。。

希望这有帮助。

SO网友:ThaWolf

为什么不这样做。。。

if (get_post_type( $post->ID ) == \'xyz\' && is_single() ) {
// your code for this sb 
}
else {
// for the other pages/posts
}

结束