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ページにウィジェットを表示しようとしたことがあり
ご迷惑をおかけして申し訳ありません。はい、私は自分のコードでこれを持っており、他のすべてのウィジェットはサイドバーで完璧に動作します。しかし、私がカスタム作成したウィジェットは、リストに表示されず、サイドバーに追加することはできません。とにかくありがとう – Shefalizzle
実際、私は同じ問題があります。私がここに書いたコードは私には見当たりませんでした。私はそれが問題だと思っていましたが、このコードを追加してもまだ私のために働いていませんでした。私は解決策を探し続けています。あなたが何かを見つけたら教えてください。 –