主题定制器-选择小部件区域的显示位置,以允许用户组织小部件

时间:2015-12-06 作者:Kaspar Lee

我正在创建一个主题,我对小部件和小部件区域有问题。我使用主题定制器让用户编辑内容、颜色等。

我知道如何创建小部件区域。我需要能够将小部件区域添加到主题定制器中的特定部分。例如zerif-lite 主题(如下图所示)在

我们的焦点部分-面板

我们的焦点部分小部件

我想在我的主题中做同样的事情,能够选择小部件区域在定制器中的显示位置。

Note: 我确实看过zerif-lite, 然而,我仍然不知道他们是怎么做到的。

此外,我知道如何创建Panels, Sections, SettingsControls, 只是不知道如何创建小部件区域。

enter image description here

1 个回复
SO网友:cjbj

只需访问数据结构并为面板指定不同的值,就可以在自定义程序中移动各个部分。因此,假设以通常方式创建的小部件区域被调用wpse210938_area 你想把它移到面板上wpse210938_panel, 您可以这样做:

add_action( \'customize_register\', \'wpse210938_move_widget_area\' );
function wpse210938_move_widget_area () {
  global $wp_customize;
  $wp_customize->get_section (\'sidebar-widgets-wpse210938_area\')->panel = \'wpse210938_panel\';
  }
唯一的缺点是,如果启用调试模式,您将收到一条php警告“从空值创建默认对象”,可能是因为WP最后加载小部件部分,所以当您移动它们时,它们仍然是空的。

相关推荐

Dynamic Width of Widgets

好的,我在一个侧边栏中为最多6个小部件使用以下代码function s57d_sidebar1_params($params) { $sidebar_id = $params[0][\'id\']; if ( $sidebar_id == \'sidebar-1\' ) { $total_widgets = wp_get_sidebars_widgets(); $sidebar_widgets = count($total_wi