【问题标题】:Wordpress create widget area in a widgetWordpress 在小部件中创建小部件区域
【发布时间】:2017-12-04 00:21:14
【问题描述】:

我正在尝试在另一个小部件中插入自定义小部件区域,但不知道从哪里开始。我是否需要在具有唯一 ID 的小部件类构造函数中注册新的小部件区域?

我想要达到的目标: 插入一个包含小部件区域的部分小部件。 将自定义小部件插入到带有小部件区域的部分中。

<?php
    function dov_load_widget_default( ) {
            register_widget( 'section' );
    }
    add_action( 'widgets_init', 'dov_load_widget_default' );

    class section extends WP_Widget {
            function __construct( ) {
                    parent::__construct(
                            'section',
                            __( 'Portfolio sections', 'dov_portfolio' ),
                            array( 'description' => __( 'Default section for widgets', 'dov_portfolio' ) )
                    );
            }

            // Creating widget front-end
            public function widget( $args, $instance ) {

            }

            // Widget Backend
            public function form( $instance ) {

            }

            // Updating widget replacing old instances with new
            public function update( $new_instance, $old_instance ) {
                    $instance = array( );
                    return $instance;
            }
    }

?>

【问题讨论】:

    标签: php wordpress widget


    【解决方案1】:

    不知道这是否正确,但它似乎有效。

        function dov_load_sidebars( ) {
                register_sidebar( array(
                        'id'   => 'portfolio_sections',
                        'name' => __( 'Portfolio sections', 'dov_portfolio' )
                ));
    
                $sections = wp_get_sidebars_widgets( );
                if( isset( $sections[ 'portfolio_sections' ] ) ) :
                        $sections = $sections[ 'portfolio_sections' ];
                        foreach( $sections as $section ) :
                                register_sidebar( array(
                                        'id' => $section,
                                        'name' => __( 'Portfolio section', 'dov_portfolio' ) . ': ' . $section
                                ));
                        endforeach;
                endif;
        }
        add_action( 'widgets_init', 'dov_load_sidebars' );
    

    编辑:插入部分小部件后,小部件区域不会刷新。如何刷新它们或者我应该使用 js 添加它们?

    【讨论】:

      猜你喜欢
      • 2015-07-17
      • 2014-04-01
      • 1970-01-01
      • 2023-04-01
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多