如何最好地在主页上包含小工具区域?

时间:2013-07-18 作者:Damon

我有一个头版。php定义我的主题(Genesis子主题)的主页。

在其中,我有一些自定义小部件区域,如下所示:

genesis_register_sidebar( array(
    \'id\'    => \'cta\',
    \'name\'    => __( \'How do I Connect?\', \'site\' ),
    \'description\'    => __( \'This is the cta widget for the home page.\', \'site\' ),
) );

add_action( \'genesis_after_header\', \'cta_widget\' );

function cta_widget() {
   genesis_widget_area( \'cta\', array(
       \'before\' => \'<div class="cta widget-area"><div class="wrap"><h2>How do I <strong>Connect?</strong></h2>\',
       \'after\' => \'</div></div>\'
   ) );
}
我最初在函数中有它。php,它工作得很好。。我添加了一些小部件,等等,没有问题。但现在我把它移到了头版。正如我所看到的,php是一种将其限制在主页上的方法,现在它列在非活动窗口小部件下,虽然我仍然可以编辑它们,但这对用户来说很困惑,而且我无法以这种方式添加更多内容。这是预期的行为吗?

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

这是预期的行为吗?

是的,这是预期的行为。这个genesis_register_sidebar() 函数只是调用register_sidebar() 具有一些预定义的默认值$args 和一个名为\'genesis_register_sidebar_defaults\':

function genesis_register_sidebar( $args ) {

    $defaults = (array) apply_filters(
        \'genesis_register_sidebar_defaults\',
        array(
            \'before_widget\' => \'<div id="%1$s" class="widget %2$s"><div class="widget-wrap">\',
            \'after_widget\'  => "</div></div>\\n",
            \'before_title\'  => \'<h4 class="widgettitle">\',
            \'after_title\'   => "</h4>\\n",
        )
    );

    $args = wp_parse_args( $args, $defaults );

    return register_sidebar( $args );
}
front-page.php 在管理页面加载期间,子主题文件(通常)不会运行,小部件未注册,并且不会出现在活动小部件区域中。正如您在评论中正确推测的那样,将呼叫genesis_register_sidebar() 在函数中。php子主题文件在加载管理页面时注册小部件。

结束

相关推荐

Prevent widgets removal

我正在用许多小部件构建一个网站。它们是高度定制的。当站点处于活动状态时,几个管理员/编辑器必须编辑这些小部件。现在,我很害怕看到一个小部件(及其配置)可以在一次鼠标移动中完全擦除(将其从侧栏中删除)。有没有什么方法可以防止小部件被删除,同时保持编辑其内容的能力?此外,在我看来,管理中的widget管理页面为“添加widget”模块提供了太多的空间,而为“激活的widget”模块提供的空间不足。这在创建站点时很有用,但在完成站点时却毫无用处。有没有办法切换这些模块的大小?非常感谢