如何从窗口小部件区域获取类

时间:2013-09-11 作者:artist learning to code

所以我用以下代码注册了我的小部件区域:

    register_sidebar( array(
    \'name\' => __( \'Posts Widget Area\', \'ikos\' ),
    \'id\' => \'primary-widget-area\',
    \'class\'         => \'post-w\',        
    \'description\' => __( \'Shown only in Blog Posts, Archives, Categories, etc.\', \'ikos\' ),
    \'before_widget\' => \'<li id="%1$s" class="widget-container %2$s">\',
    \'after_widget\' => \'</li>\',
    \'before_title\' => \'<h3 class="widget-title">\',
    \'after_title\' => \'</h3>\',
) );
注意,我添加了一个类。我想“抓取”这个类(动态)并对所有侧边栏使用相同的代码。。。类似于:

<div id="sidebar" class="HERE THE CODE THAT GRABS THE CLASS" role="complementary">

但我不知道如何编写这个小东西。请提供帮助:)

EDIT我使用这段代码在函数中“包装”侧栏。php

// Before Sidebar - do_action(\'st_before_sidebar\')

// call up the action
if ( !function_exists( \'before_sidebar\' ) ) {

function before_sidebar($columns) {
if (empty($columns)) {
// Set the default
$columns = \'five\';
} else {
// Check the function for a returned variable
$columns = $columns;
}

// Apply the markup
echo \'<div id="sidebar" class="\'.$columns.\' columns" role="complementary">\';
}
} //endif
// create our hook
add_action( \'ikos_before_sidebar\', \'before_sidebar\');  



// After Sidebar
if ( !function_exists( \'after_sidebar\' ) ) {
function after_sidebar() {
// Additional Content could be added here
   echo \'</div><!-- #sidebar -->\';
}
} //endif
add_action( \'ikos_after_sidebar\', \'after_sidebar\');  

EDIT 2

在页面中,我只调用侧边栏get_sidebar(\'page\'); 和侧边栏页面内。php我调用在函数中编写的before和after操作。我需要为类添加一个动态变量。。。有没有办法做到这一点?

1 个回复
SO网友:Charles Clarkson

侧栏存储在名为$wp_registered_sidebars.

if ( ! function_exists( \'before_sidebar\' ) ) {

    function before_sidebar( $columns = \'five\' ) {
        global $wp_registered_sidebars;

        $class_name = $wp_registered_sidebars[$columns][\'class\'];

        // Apply the markup
        echo "<div id=\'sidebar\' class=\'$class_name\' role=\'complementary\'>\\n";
    }
}
我假设$列包含提要栏IDbefore_sidebar() 是给定给\'id\' (\'id\' => \'primary-widget-area\') 在参数中。我这么说是因为命名那个变量$columns 看起来很奇怪。

结束

相关推荐

If has $title in widgets

我正在写一个小部件来显示125 x 125像素的广告。广告有6个空间,目前所有作品都有。然而,我想添加一些条件逻辑,这样,如果在一个广告的小部件管理中的值中没有输入任何内容,那么就不会显示add。我想这可以通过使用PHP if或其他什么东西来实现,我不记得它到底是什么。我需要它和<?php & ?> 标签打开。需要检查一下$adone 存在,如果不存在,则显示空白。我知道这里的代码是错误的,但类似这样的代码:<?php if_has($adone_img) ?>