我的网站有以下结构,其中一列是主要内容(文章),另一列是右侧的侧栏(主要侧栏)。
主题允许我将布局更改为三列,但这是一个“侧宽”更改。我不想在主要内容部分有三列。
有没有办法只在分类页面上显示第二个侧边栏?
下面是辅助侧栏的代码:
<?php
/**
* Alternate Sidebar Template
*
* If a `secondary` widget area is active and has widgets,
* and the selected layout has a third column, display the sidebar.
*
* @package WooFramework
* @subpackage Template
*/
global $woo_options;
$selected_layout = \'one-col\';
$layouts = array( \'three-col-left\', \'three-col-middle\', \'three-col-right\' );
if ( is_array( $woo_options ) && array_key_exists( \'woo_layout\', $woo_options ) ) { $selected_layout = $woo_options[\'woo_layout\']; }
if ( in_array( $selected_layout, $layouts ) ) {
if ( woo_active_sidebar( \'secondary\' ) ) {
woo_sidebar_before();
?>
<aside id="sidebar-alt">
<?php
woo_sidebar_inside_before();
woo_sidebar( \'secondary\' );
woo_sidebar_inside_after();
?>
</aside><!-- /#sidebar-alt -->
<?php
woo_sidebar_after();
} // End IF Statement
} // End IF Statement
?>
我认为有几种方法可以实现这一目标:
1) 我们使用条件函数仅在类别页面上显示辅助侧栏(应位于主要内容的左侧)。2) 我们可以在单个页面上禁用辅助侧栏。3) 使用CSS禁用侧栏(不确定这是否会导致隐藏内容问题)
我想知道这听起来是否合乎逻辑(不幸的是,我不是一个“程序员”)
感谢您的帮助。
最合适的回答,由SO网友:Charles Clarkson 整理而成
使用is_category() WordPress函数确定您是否在类别模板中。
<?php
/**
* Alternate Sidebar Template
*
* If a `secondary` widget area is active and has widgets,
* and the selected layout has a third column, display the sidebar.
*
* @package WooFramework
* @subpackage Template
*/
// If this is a category template.
if ( is_category() ) {
global $woo_options;
$selected_layout = \'one-col\';
$layouts = array( \'three-col-left\', \'three-col-middle\', \'three-col-right\' );
if ( is_array( $woo_options ) && array_key_exists( \'woo_layout\', $woo_options ) ) {
$selected_layout = $woo_options[\'woo_layout\'];
}
if ( in_array( $selected_layout, $layouts ) ) {
if ( woo_active_sidebar( \'secondary\' ) ) {
woo_sidebar_before();
?>
<aside id="sidebar-alt">
<?php
woo_sidebar_inside_before();
woo_sidebar( \'secondary\' );
woo_sidebar_inside_after();
?>
</aside><!-- /#sidebar-alt -->
<?php
woo_sidebar_after();
} // End IF Statement
} // End IF Statement
}