2016-09-26 20 views
2

私はワードプレス初心者です。見出しとテキストを表示する簡単なウィジェットプラグインを作成しました。すべてがうまくいくように見えますが、プラグインはアクティブになっていますが、ウィジェットはバックエンドウィジェットリストに表示されません。私は間違って何をしていますか?アクティブなプラグインがバックエンドフォームに表示されない

私は高低を検索、チェック、再チェックしましたが、何が間違っているのかを特定することはできません。

ここに私のコードファイルです:

のfunctions.php

<?php 
    function ms_init_widgets($id){ 
     register_sidebar(array(
      'name' => 'Showcase', 
      'id' => 'showcase', 
      'before_widget' => '', 
      'after_widget' => '', 
      'before_title' => '', 
      'after_title' => '' 
     )); 
    } 

add_action('widgets_init', 'ms_init_widgets'); 

新ショーケース-widget.php

<?php 
    /* 
    *Plugin name: New Showcase Widget 
    *Description: A new showcase widget that displays a title and text 
    *Author: Shefalizzle 
    *version: 1.0 
    * 
    */ 

    include('class.new-showcase-widget.php'); 

    function register_new_showcase_widget(){ 
     register_widget('New_Showcase_Widget'); 
    } 

    add_action('widgets-init', 'register_new_showcase_widget'); 

class.new-ショーケース・ウィジェットが。 PHP

<?php 

class New_Showcase_Widget extends WP_Widget { 

    // constructor 
    public function __construct() { 
     $widget_ops = array( 
      'classname' => 'new_showcase_widget', 
      'description' => __('A new widget I created that is actually working', 'text_domain'), 
     ); 
     parent::__construct('new_showcase_widget', 'New_Showcase_Widget', $widget_ops); 
    } 

    // widget form creation 
    function form($instance) { 
    /* ... */ 
    if($instance) { 
    $title = esc_attr($instance['title']); 
    $heading = esc_attr($instance['heading']); 
    $text = esc_attr($instance['text']); 
    } else { 
     $title = ''; 
     $heading = ''; 
     $text = ''; 
    } 
    ?> 

    <p> 
    <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label> 
    <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /> 
    </p> 

    <p> 
    <label for="<?php echo $this->get_field_id('heading'); ?>"><?php _e('Heading:'); ?></label> 
    <input class="widefat" id="<?php echo $this->get_field_id('heading'); ?>" name="<?php echo $this->get_field_name('heading'); ?>" type="text" value="<?php echo $heading; ?>" /> 
    </p> 

    <p> 
    <label for="<?php echo $this->get_field_id('text'); ?>"><?php _e('Text:'); ?></label> 
    <input class="widefat" id="<?php echo $this->get_field_id('text'); ?>" name="<?php echo $this->get_field_name('text'); ?>"><?php echo $text; ?></input> 
    </p> 

    <?php 

    } 

    // widget update 
    function update($new_instance, $old_instance) { 
     /* ... */ 
     $instance = $old_instance; 

     $instance['title'] = strip_tags($new_instance['title']); 
     $instance['text'] = strip_tags($new_instance['text']); 
     $instance['textarea'] = strip_tags($new_instance['textarea']); 

     return $instance; 
    } 

    // widget display 
    function widget($args, $instance) { 
     /* ... */ 
     extract($args); 

     $title = apply_filters('widget_title', $instance['title']); 
     $heading = $instance['heading']; 
     $text = $instance['text']; 

     echo $before_widget; 

     // Check if title is set 
     if ($title) { 
      echo $before_title . $title . $after_title; 
     } 

     if($heading) { 
      echo '<h1>'.$heading.'</h1>'; 
     } 

     // Check if text is set 
     if($text) { 
      echo '<p>'.$text.'</p>'; 
     } 

     echo $after_widget;  
    } 
} 

私は、フォームの機能に何か問題があると思うが、私はあなたがあなたのindex.phpページにウィジェットを表示しようとしたことがあり

答えて

0

、またはあなたが必要とするページがそれを把握するように見えることはできませんか?

<?php if(is_active_sidebar('showcase')) : ?> 
    <?php dynamic_sidebar('showcase'); ?> 
<?php endif; ?> 
+0

ご迷惑をおかけして申し訳ありません。はい、私は自分のコードでこれを持っており、他のすべてのウィジェットはサイドバーで完璧に動作します。しかし、私がカスタム作成したウィジェットは、リストに表示されず、サイドバーに追加することはできません。とにかくありがとう – Shefalizzle

+1

実際、私は同じ問題があります。私がここに書いたコードは私には見当たりませんでした。私はそれが問題だと思っていましたが、このコードを追加してもまだ私のために働いていませんでした。私は解決策を探し続けています。あなたが何かを見つけたら教えてください。 –

関連する問題