つつカスタムウィジェットを作成しているのですが F...
つまり「MY_Widget クラスが見つからない」ということです。
「166行目のメソッドの第一引数と188行目のクラス名を揃えましたが...」
これはmy_widgets_item1のことですね。
・165-167行目をコメントアウトする
・188行目のクラス名をmy_widgets_item1からMy_Widgetに変更する
の二つを実施したところエラーが出なくなりました。
外観→ウィジェットの項目が表示されなくなったため
・161-163行目をコメントアウトしていた165-167行目に置き換える
・188行目のクラス名をMy_Widgetからmy_widgets_item1に変更する
対応を行いました
見つからないのでMY_Widget クラスを追加してあげればいいわけです。my_widgets_item1と同じように。
add_action( 'widgets_init', function(){
register_widget( 'My_Widget' );
});
と
class My_Widget extends WP_Widget{
public function __construct() {
parent::__construct(false, $name = 'ウィジェット');
}
}
を追加したところ
Class 'MY_Widget' not found
のエラーが解消されました
部活の学習一覧
Lesson 01
「WordPressって何?」
Lesson 02
「WordPressを使ってみよう!」
Lesson 03
「売れるテンプレートを作ろう!〜準備編〜」
Lesson 04
「売れるテンプレートを作ろう!〜共通パーツ編〜」
Lesson 05
「売れるテンプレートを作ろう!〜固定ページ編〜」
Lesson 06
「売れるテンプレートを作ろう!〜記事一覧ページ編〜」
Lesson 07
「売れるテンプレートを作ろう!〜記事ページ編〜」
Lesson 08
「売れるテンプレートを作ろう!〜関数編その1〜」
Lesson 09
「カスタムフィールドの作り方」
Lesson 10
「カスタムフィールドの作り方その2」
Lesson 11
「カスタムウィジェットの作り方」
Lesson 12
「最終回!!」
コーヒーブレイク
「はたらくプログラミング 第6話」
ご意見箱
Fatal error: Uncaught Error: Class 'MY_Widget' not found in /Applications/MAMP/htdocs/wordpress/wp-includes/class-wp-widget-factory.php:61 Stack trace: #0 /Applications/MAMP/htdocs/wordpress/wp-includes/widgets.php(115): WP_Widget_Factory->register('MY_Widget') #1 /Applications/MAMP/htdocs/wordpress/wp-content/themes/sample/functions.php(162): register_widget('MY_Widget') #2 /Applications/MAMP/htdocs/wordpress/wp-includes/class-wp-hook.php(292): {closure}('') #3 /Applications/MAMP/htdocs/wordpress/wp-includes/class-wp-hook.php(316): WP_Hook->apply_filters('', Array) #4 /Applications/MAMP/htdocs/wordpress/wp-includes/plugin.php(484): WP_Hook->do_action(Array) #5 /Applications/MAMP/htdocs/wordpress/wp-includes/widgets.php(1799): do_action('widgets_init') #6 /Applications/MAMP/htdocs/wordpress/wp-includes/class-wp-hook.php(292): wp_widgets_init('') #7 /Applications/MAMP/htdocs/wordpress/wp-includes/class-wp-hook.php(316): WP_Hook->apply_filters(NULL, Array) #8 /Applications/MAMP/htdocs/wordpress/wp-includes/plugin.php(484): in /Applications/MAMP/htdocs/wordpress/wp-includes/class-wp-widget-factory.php on line 61
という過去の質問と近いエラーが出ました。
関数register_widget()の第一引数と157行目付近に記載のクラス名を同じにして、「ウィジェットを作成するクラスがどれなのか」というのを指定する必要があるということで
160 // ウィジェットエリアを作成する関数がどれなのか登録する
161 add_action('widgets_init', function(){
162 register_widget('MY_Widget');
163 });
164 // ウィジェット自体の作成する関数がどれなのかを登録する
165 add_action( 'widgets_init', function(){
166 register_widget( 'my_widgets_item1' );
167 });
169 // ウィジェットエリアを作成する
170 function my_widgets_area(){
171 register_sidebar( array(
172 'name' => 'メリットエリア',
173 'id' => 'widget_merit',
174 'before_widget' => '<div>',
175 'after_widget' => '</div>'));
176
177 register_sidebar( array(
178 'name' => 'right-sidebar',
179 'id' => 'my_sidebar',
180 'before_widget' => '<div>',
181 'after_widget' => '</div>',
182 'before_title' => '<h2 class="rounded">',
183 'after_title' => '</h2>'
184 ));
185 }
186
187 // ウィジェット自体を作成する
188 class my_widgets_item1 extends WP_Widget{
189
190 /* 初期化(管理画面で表示するウィジェットの名前を設定する)*/
191 public function __construct() {
192 parent::__construct(false, $name = 'メリットウィジェット');
193 }
166行目のメソッドの第一引数と188行目のクラス名を揃えましたが状況が変わりません。
他に確認が必要な箇所はあるでしょうか?