2017-12-03 12 views
0

カスタムウィジェット領域を別のウィジェットに挿入しようとしていますが、どこから起動するのかわかりません。一意のIDを持つウィジェットクラスのコンストラクタに新しいウィジェット領域を登録する必要がありますか?Wordpressはウィジェット内にウィジェット領域を作成します

私が達成しようとしているもの: ウィジェット領域を含むセクションウィジェットを挿入します。 カスタムウィジェットをウィジェット領域に挿入します。

<?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; 
      } 
    } 

?>

答えて

0

それは正しい方法だが、動作しているようならば知ってはいけません。

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'); 

編集:セクションウィジェットを挿入した後、ウィジェット領域は更新されません。どのように私はそれらをリフレッシュすることができますか?

関連する問題