「サイドバーの引数の配列で id が設定されてない」と出るのを対処してみました[WordPress4.2.1][wp-material]

こんにちは。ryo@substuporです。

目次

今回の環境

パソコン:Windows 10 Insider Preview Build 10074
サーバー:MAMP & MAMP PRO 3 Beta 1 (Windows)

Published: 2015-04-22

Apache: 2.2.27
MySQL: 5.5.41
PHP: 5.6.3

WordPress:4.1.2

テーマ:wp-material ver.1.5.8

WordPress4.2.1へのアップデートがあった

 

WordPress4.1.2を使ってましたが、WordPress4.2.1に最近WordPressのアップデートがありましたね!

しかし、4.2.1にいきなりアップデートすると、ひょっとしたら、まだ対応していないプラグインが出てきて、それが使えなくなったり、テーマが対応してなかったりしてるのかもしれません。

テーマ「Material」を試して見る

 

ですので、一度、「MAMP」というローカルでWordPressを試せるアプリケーションを使って、今回は、当ブログで使っている「Material」というテーマをWordPress4.2.1で使えるのか試してみたところのお話です。

wp-config.phpのWP_DEBUGの値をtrue

 

今回はエラーを見るために、WordPressのwp-config.phpのWP_DEBUGの値をtrueにして、エラーを表示するようにしてます。

WordPressのwp-config.phpのWP_DEBUGの値をtrueにする

普通に使っていれば、出ないエラーなのでご安心ください。

WordPress4.2.1でMaterialを使ってみたときの画面

 

それでは、まず、Wordpress4.2.1でMaterialを使ってみたときの画面をごらんください

エラー1

うわーーーーなんかエラーだらけーーーーーーーーー

と、パニックになってしまうような表示の量ですが、ここでじっくり見てみましょう。

エラーをじっくり見てみる

 

Notice: register_sidebar が誤って呼び出されました。「サイドバー(広告上) 」サイドバーの引数の配列で id が設定されませんでした。既定では「sidebar-1」です。id に「sidebar-1」を設定することでこの情報を消して、既存のサイドバーのコンテンツを保つことができます。 詳細は WordPress のデバッグをご覧ください。 (このメッセージはバージョン 4.2.0 で追加されました) in C:MAMPhtdocswp-includesfunctions.php on line 3560

 

わかりやすくしてみると、

register_sidebarがおかしい!

「サイドバー(広告上) 」サイドバーのところ

引数の配列で id が設定されてないよ!

id に「sidebar-1」を設定するとこのエラー消えるよ!

こういうことでしょうか?

WordPress Codex 日本語版にて、関数リファレンスをみる

 

register_sidebarというのがよくわからないので、ここで、WordPress Codex 日本語版にて、関数リファレンスより、使い方を見てみましょう。

Screenshot of wpdocs.sourceforge.jp

関数リファレンス/register sidebar – WordPress Codex 日本語版

デフォルトの使い方

<?php $args = array(
	'name'          => __( 'Sidebar name', 'theme_text_domain' ),
	'id'            => 'unique-sidebar-id',
	'description'   => '',
	'class'         => '',
	'before_widget' => '<li id="%1$s" class="widget %2$s">',
	'after_widget'  => '</li>',
	'before_title'  => '<h2 class="widgettitle">',
	'after_title'   => '</h2>' ); ?>

デフォルトではこう使うという例をここでみることができました!

そして、ここにidのところがありますね!

‘id’ => ‘sidebar-$i’,

こうなっていればいいということなんです

functions.phpのエラーだからfunctions.phpをみてみる

 

それでは、エラーには、functions.phpのエラーが出ているので、テーマの中のfunctions.phpを見てみましょう

idがない


	register_sidebar(array(
		'name' => 'サイドバー(広告上)',
		'before_widget' => "<div class='box'>",
		'after_widget' => "</div>",
		'before_title' => "<h2 class='box-header main-color-font'>",
		'after_title' => '</h2>'
	));

 

となっていて、やはり、nameの下にidの指定がないという現状でした。

ということで、今回はidを追加したらエラーが消えるかやってみましょう!

Materialのfanctions.phpのregister_sidebarをみてみる

 

	register_sidebar(array(
		'name' => 'サイドバー(広告上)',
		'id' => 'sidebar-1',
		'before_widget' => "<div class='box'>",
		'after_widget' => "</div>",
		'before_title' => "<h2 class='box-header main-color-font'>",
		'after_title' => '</h2>'
	));

このような感じに、’id’ => ‘sidebar-1’ と、追加してみました。

さあ、どうなったか見てみましょう!

‘id’ => ‘sidebar-1’を追加してみた結果

 

エラー2

おおおおおおおおおおおおおおお

これは成功ですね! エラー一つなくなって3行になってます!

ということで、下にあるあと三つもidを追加してみましょう!

下の三つにも追加してみる

 

idを4つとも書く

こんな感じに追加しました。

それでは見てみましょう!

エラーが消えたらまたエラーが出現

おおおおおおおおおおおおおお!!!!!!!!!

見事、register_sidebarのエラーが消えましたね!!!!

皆さん、もし、register_sidebar関連で不具合などが出た場合は今回の方法を実践してみて、対処してみてください!

最後に

 

しかし、今回は、別に大した不具合起きたわけでもなく、

ただ、WordPress4.2から増えたサイドバーのidを指定するということを、やっていないってだけで、

表示がおかしくなったわけではありません。

WordPressのwp-config.phpのWP_DEBUGの値をtrueにしてエラーを見るのは、よっぽど神経質な人か、

もしくは、今現在、テーマの動きがおかしい、表示されない、プラグインが動かない、おかしい、そいういうときにtrueにするものなんです。

また、trueにすると、今回のように、見ているページをエラーが占領するようになります。本番のサーバーでtrueにして表示させるのは避けましょう!

それでは、今回は、4.2から増えたregister_sidebarのidのエラーを対処してみました。

他のテーマでも、WordPress4.2が出る以前に作られたテーマであれば今回のエラーが出る可能性があります。もし、このエラーが表示された場合はこの方法を試してみましょう!

それと、もう気付いていると思いますが、先ほどの画面、

エラーが消えたらまたエラーが出現

Notice: Undefined variable: additional_loop in C:MAMPhtdocswp-contentthemeswp_materialloop.php on line 39

Notice: Trying to get property of non-object in C:MAMPhtdocswp-contentthemeswp_materialloop.php on line 39

このエラーがでてるではないですか!!!!

一難去ってまた一難

今度は、Materialの中のloop.phpの39行目におかしいところがあるそうです。

このエラーはいつか対処できたら書いていけたらなと思います。

WordPressのバージョンが上がるといろいろあるのですねー

Materialの作者もこうおっしゃってます。今回その理由がよくわかりました。

テーマ作者さん、エラーがどんどん出るようで本当に大変だと思われますが、こちらはとても応援してます。

頑張ってください!!

投稿者プロフィール

魚住諒
魚住諒
26歳 統合失調症の回復期の認知機能障害やうつ症状などに悩んでいるが、克服して、勉強や仕事ができる頃の脳に戻したい。
愛知産業大学短期大学通信教育学部国際コミュニケーション学科卒業(英語)
2016年セブ島へ1ヶ月語学留学してきた。
WordPress/PHP/HTML/CSS/React を習得中
英語とプラグインやテーマを開発できる人になるよう日々研鑽
ジャズトランペットとガジェット関連が好きです。

[ 最近のWordPressコミュニティでの活動 ]
contents.nagoya 2019 オープンセッションスピーカー
WordCamp Haneda 2019 – START!セッションスピーカー
Aichi WordPress Meetup #9「WordPress用のレンタルサーバーの選び方 /Emmetツールの実演」
WordBench Nagoya 6月度 (初心者向け)「PHP入門からテーマ作成さらにWordPressを使う上で知っておくと幸せになることまでとことん知ろう!
Aichi WordPress Meetup #5「カスタムブロックを活用してみよう!」
2017 WordFesNagoya 実行委員 Webサイト制作チーム & セッションスピーカー
2016 WordFesNagoya 実行委員 Webサイト制作チーム & セッションスピーカー

TOEIC
2016年03月13日 LR 235 (Listening 180 Reading 55)
2018年04月08日 LR 300 (Listening 180 Reading 120)