バージョンエラー「Warning: Use of undefined constant description」を解決する[WordPress]

WordPress前バージョンの時には正常にアップロードされていたものが、バージョンアップしたらエラーが出てしまった……という事はよくある話で。

「Warning: Use of undefined constant description」を悩んだ末、放置しておいた(駄目すぎる)のが、非常に簡単に解決したので覚書き(と言うか、戒め)。

error

「Use of undefined constant description」は大抵簡単に解決するという話

えっ、エラーが出ていたのに何ヶ月も放置ってあり得なくないですか…という話ですが、件のエラーは、たぶん「ほぼアクセスのない特定のページ」以外に全く影響のない部分だったので、「いずれまた……」のまま忘れていたのですね(笑)

しかし、ちょっと直す必要性が出て来たので見直してみたら3分で解決しました。ほら、放置していたおかげで頭が冷えてね……(という言い訳)

経緯

バージョンアップでエラーが出たのはこの案件ページで。

Wordpressで会員制のページを作成する際、author.phpを編集してユーザーごとのプロフィールをページに表示する方法。プロフィールの項目を増やす方法。

前バージョンWordpress4.9の時には正常に表示されていたものが、5.0にバージョンアップしたらエラーが出てしまった……という話です。

エラー「Use of undefined」を解決

エラーの内容は、

Warning: Use of undefined constant description – assumed ‘description’ (this will throw an Error in a future version of PHP) in /home/……/wp-content/themes/… on line 73

73行目が「Use of undefined constant description」=「未定義の記述を使用してるよ、あんた」という事でした。

と、言われても旧バージョンの時にはきちんと表示されていたしね(困惑)

このページは登録した会員のプロフィールをダッシュボードのユーザープロフィールから「get the author meta」で引っ張ってきて表示させているものです。

しばらく悩んだり検索したりしたのですが、もしかしたら「get the author meta」が使用できなくなったのだろうか……などと考えた末、会員登録するユーザーがほとんどいなかったので「また後で……」と放置していたのです(駄目すぎる)

些細なこと

登録して下さる方がポチポチ増えて来たので、そういえば放置してたんだったと思い出し、久しぶりにコードを眺めてみたら3分で解決……。

よく見ると、エラーは「Twitter URL」や「サイトURL」の項目には出ておらず、アンケートの項目に主にツラツラと出ていました。以下がコードです。(勘の良い方はもうこの時点で分るはず……(泣))

<?php echo get_avatar(get_the_author_meta( 'user_email', $author ), 80); ?><?php the_author_meta( display_name, $author ); //ここから本文?><br />
<p>サイト: <a href=”<?php echo ( get_the_author_meta( ‘site_url’ ) ); ?>”><?php
$user_data = get_userdata($author);
if ($user_data->user_url) {
echo $user_data->user_url . “<br />”;
}
?></a></p>

<p>Twitter URL: <a href=”<?php echo ( get_the_author_meta( ‘twitter_url’ ) ); ?>”><?php
$user_data = get_userdata($author);
if ($user_data->twitter_url) {
echo $user_data->twitter_url . “<br />”;
}
?></a></p>
<p>Facebook page: <a href=”<?php echo ( get_the_author_meta( ‘facebook_url’ ) ); ?>”><?php
$user_data = get_userdata($author);
if ($user_data->facebook_url) {
echo $user_data->facebook_url . “<br />”;
}
?></a></p>
<p>Google+: <a href=”<?php echo ( get_the_author_meta( ‘Google’ ) ); ?>”><?php
$user_data = get_userdata($author);
if ($user_data->Google) {
echo $user_data->Google . “<br />”;
}
?></a></p>
<br />
<hr>

<h3>プロフィール</h3>
<?php the_author_meta( description, $author ); ?>
<h3>アンケート</h3>
<p>好きな俳優は?: <?php the_author_meta( actor, $author ); ?></p>
<p>好きな女優は?: <?php the_author_meta( actress, $author ); ?></p>
<p>好きなドラマ1位: <?php the_author_meta( best1, $author ); ?></p>
<p>好きなドラマ2位: <?php the_author_meta( best2, $author ); ?></p>
<p>好きなドラマ3位: <?php the_author_meta( best3, $author ); ?></p>
<p>好きなドラマ4位: <?php the_author_meta( best4, $author ); ?></p>
<p>好きなドラマ5位: <?php the_author_meta( best5, $author ); ?></p>

<hr>


修正後です。

<?php echo get_avatar(get_the_author_meta( 'user_email', $author ), 80); ?><?php the_author_meta( 'display_name', $author ); //ここから本文?><br />
<p>サイト: <a href=”<?php echo ( get_the_author_meta( ‘site_url’ ) ); ?>”><?php
$user_data = get_userdata($author);
if ($user_data->user_url) {
echo $user_data->user_url . “<br />”;
}
?></a></p>

<p>Twitter URL: <a href=”<?php echo ( get_the_author_meta( ‘twitter_url’ ) ); ?>”><?php
$user_data = get_userdata($author);
if ($user_data->twitter_url) {
echo $user_data->twitter_url . “<br />”;
}
?></a></p>
<p>Facebook page: <a href=”<?php echo ( get_the_author_meta( ‘facebook_url’ ) ); ?>”><?php
$user_data = get_userdata($author);
if ($user_data->facebook_url) {
echo $user_data->facebook_url . “<br />”;
}
?></a></p>
<p>Google+: <a href=”<?php echo ( get_the_author_meta( ‘Google’ ) ); ?>”><?php
$user_data = get_userdata($author);
if ($user_data->Google) {
echo $user_data->Google . “<br />”;
}
?></a></p>
<br />
<hr>

<h3>プロフィール</h3>
<?php the_author_meta( 'description', $author ); ?>
<h3>アンケート</h3>
<p>好きな俳優は?: <?php the_author_meta( 'actor', $author ); ?></p>
<p>好きな女優は?: <?php the_author_meta( 'actress', $author ); ?></p>
<p>好きなドラマ1位: <?php the_author_meta( 'best1', $author ); ?></p>
<p>好きなドラマ2位: <?php the_author_meta( 'best2', $author ); ?></p>
<p>好きなドラマ3位: <?php the_author_meta( 'best3', $author ); ?></p>
<p>好きなドラマ4位: <?php the_author_meta( 'best4', $author ); ?></p>
<p>好きなドラマ5位: <?php the_author_meta( 'best5', $author ); ?></p>

<hr>


そう……表示項目「the_author_meta( actor, $author )」ここに「'」が抜けていたのです。「( 'actor', $author )」が正解でした。凡ミスって本当に恐い!!

「Use of undefined constant description」エラーは記述ミス

項目に「'」を付けただけで解決し、きちんと表示されるようになりました。


後々聞いた話によると、「Use of undefined constant description」エラーの原因はほとんどが記述ミスだそうです。

あきらめないで原因を探して対処しましょう。(自分に言ってる)

サポートよろしくお願いします

いつもありがとうございます。

この記事を気に入って下さった方、「寄付してあげてもいいよ」という方がいらっしゃったらサポートしていただけると嬉しいです。

Amazonギフト券- Eメールタイプ - Amazonベーシック
金額は空白欄に適当に(15円から)書きこんで下さい。(あらかじめ入っている金額はAmazonの設定なので気になさらないでください)。

メールのあて先は 「ageru15@gmail.com」です。
※上記のアドレスは投げ銭受け取り専用です。他のメールは受け取れない設定にしてあるのでご注意ください。

 
よろしくお願いいたします。

なお、この投げ銭システムに関する記事はこちら→『ブログに「投げ銭」システムをつける方法を考えてみたまとめ』

フォローする

スポンサーリンク

コメント

※アドレスは必須ではありませんがGravatarでアバター設定している方は記入しないと画像が出ません。(アドレスは表示されません)。キャプチャーにチェックの上、送信お願い致します。承認後表示されます。

内容をご確認の上、「送信」ボタンを押してください。