創作・同人サイトに特化した多機能WordPressテーマ › フォーラム › 不具合、要望スレッド › 「Warning: Undefined variable」が表示されるようになりました。
- このトピックには7件の返信、1人の参加者があり、最後にみききにより1年、 7ヶ月前に更新されました。
-
投稿者投稿
-
-
oninoゲスト
初めまして、oninoと申します。
『do』で配布されていたテンプレートに心惹かれ辿り着いたものの、WordPressのテーマも配布されていると知り、「サイトの改装はこちらのテーマを使って、WordPressでやろう!」と頑張っている同人字書き(HTMLは直打ち派)です。
マニュアルを参考に構築していたのですが、ある日を境に、固定ページ全部に以下のエラーが表示されるようになりました。Warning: Undefined variable $slug in /home/kyokuto/www/new/wp-content/themes/easel/functions.php on line 893
class=”cf post-50 page type-page status-publish hentry” role=”article” itemscope itemtype=”http://schema.org/BlogPosting”>PHPはさっぱりなので、エラーの文言を検索しました。よくあるエラーである事、変数を返せばいい事、何なら見えなくしても問題無い事、等々の解決方法を見つけたのですが、前者ふたつは解決方法を見ても何処を弄ればいいのか全然解らず、後者は「いや、エラーを見えなくしたらダメでしょ」となり、結局解らないままです。
自分なりに解決すべく、いろいろ試してみました。下記にもありますが、作品ページにはエラーが表示されなかったので、出来上がっていた分はエクスポートで退避。固定ページも、ひとつ更新してはエクスポートするのを繰り返し、大丈夫だった範囲を残して少しずつ構築しました。しかし、そろそろ限界です。
お忙しいとは存じますが、ご助言をいただければと思い、こちらに書き込みました。よろしくお願いします。EASELのバージョン:1.5.3(子テーマ「CANVAS on EASEL」インストール済み)
サーバー:さくらインターネット
確認したブラウザ:chrome、Vivaldi、Edge
サイト:http://www.kyokuto.org/new/ (版権の非公式二次小説が半数以上)不具合:固定ページの頭に「Warning: Undefined variable」が表示される。
【設定した条件と、実験の結果】
*別テーマで固定ページを作ると出ない。
*パーマリンクとスラッグは、常に英数小文字で設定。
*「作品タイプ」は設定しているが、「作品タグ」は未設定で進めていた。
*エラー表示が出てから構築を止めているので、リンク先に何も無いページがある。
*以下は「EASEL設定」で設定を動かした際の実験と結果。
・「作品タイプ」に「文章」を入れていない状態で「作品タイプ『文章』の本文表示エリアの横幅を狭める」を「行う」にすると、ページの頭に下記エラーが表示される。作品タイプに「文章」を足すとエラー表示は消える。これ以外で作品ページにエラーが出た事は無い。
Warning: Undefined variable $slug in /home/kyokuto/www/new/wp-content/themes/easel/functions.php on line 893
class=”cf post-846 works type-works status-publish hentry custom_cat-(スラッグ名)” role=”article”>
・作品ページのエラー例から鑑みて、固定ページもスラッグの何かが関係すると想定したものの(エラーにも「$slug」の記述があったので)、893行目を見ても理解が出来なかった為、functions.phpに手を加えていない。
・「作品展示設定」で「作品タイプの初期設定を行う」を「行う」にチェックを入れて保存すると、固定ページにエラーが表示される。しかし変更は反映されておらず、再度「作品展示設定」を開くとチェックが外れている。
・「作品タイプ階層準拠」を選択するとエラーが表示される時がある(※「常に」ではなく、何が違うのか再現出来なかった)。この際、マニュアルにあるとおり「パーマリンク」の更新を常にしていた。アドレスも有効になっている。
・WordPress6.0の更新辺りからの不具合だったと気づき、「WP Downgrade」で5.9.3にダウングレードして実行したが、エラーが出るのは変わらなかった。5.6まで下げても変わらなかったので、そこで実験を終了した(※添付のアドレスは6.0に戻した状態)。ここから、バージョンの問題ではないと判断。
・固定ページで一度エラー表示が出ると、動作を前の状態に戻しても消えない(ので、エラー表示が出たらWordPressをサーバーからアンインストールし、再度インストールするのを繰り返して実験した)。繰り返しとなりますが、何卒よろしくお願いします。
-
gtgtキーマスター
EASELのご利用ありがとうございます。
>「作品タイプ」に「文章」を入れていない状態で「作品タイプ『文章』の本文表示エリアの横幅を狭める」を「行う」にする
ご報告いただいたエラー文は、このような使い方を想定していないために出たものと思われます。原因はわかりましたので、近日中にWP Ver6.0への対応とともに、アップデートします。ご不便おかけしますが、少しお待ちください。>「作品展示設定」で「作品タイプの初期設定を行う」を「行う」にチェックを入れて保存すると、固定ページにエラーが表示される。しかし変更は反映されておらず、再度「作品展示設定」を開くとチェックが外れている。
こちらは仕様です。当該チェックボタンにチェックを入れて保存ボタンをクリックすると、「作品タイプ」が自動的に生成されるかと存じます。なにがしかの設定に変更を加えるためのチェックボックスではなく、作品タイプを生成するためのチェックボックスですので、生成後は勝手に外れます。>・「作品タイプ階層準拠」を選択するとエラーが表示される時がある(※「常に」ではなく、何が違うのか再現出来なかった)。この際、マニュアルにあるとおり「パーマリンク」の更新を常にしていた。アドレスも有効になっている。
これについては情報が少なく、現時点では対応しかねます。何かお分かりになりましたら新しくトピックを立ててご報告いただけますとありがたいです。よろしくお願いいたします。
-
oninoゲスト
お返事ありがとうございます。
仕様である旨と今後のアップデートの件、了解しました。お忙しいところ、ありがとうございます。
アップデートをお待ちしつつ、私もどうエラーが出るのか、今後も気をつけて作っていきます。先述したものと違う挙動がありましたなら、こちらへお知らせに伺います。表示が出ないのが、一番いいのですが……。
先述の投稿でアンインストールとインストールを繰り返したと書きましたが、一緒に消えていると思ったデータベースが残っているようでしたので、現在、まっさらにして再実験中です。上手く行く事を祈りつつ。
繰り返しとなりますが、お返事ありがとうございました。頑張ります。
-
-
gtgtキーマスター
ご確認ありがとうございます。昨日のアップデートで、対応を行ったのですが、改善されましたでしょうか?
-
oninoゲスト
早速お疲れ様です。確認致しました。
タイプ「文章」を外しても、エラーが出なくなりました。ありがとうございます。ついでと言ってはなんですが、この機会に御報告します。
現在の実験で、今のところ「Warning: Undefined variable」が表示されないので、解決したかも知れません。
先の報告に書いたとおり、さくらインターネットのサーバに置いています。こちらは(ご存知とは思いますが)クイックインストールでWordPressを設置出来ます。仕様でwww直下に置けません。そこでインストールするサブディレクトリを作るのが最初なのですが、この際に選択出来るドメインが、難だったようです。
私は独自ドメインも取っていたので、選択肢に「www.(ユーザー名).sakura.ne.jp」「(ユーザー名).sakura.ne.jp」「www.(独自ドメイン)」「www.www.(独自ドメイン)」「(独自ドメイン)」と並びます。
ここで「www.(ユーザー名).sakura.ne.jp」に設定し、WordPressの一般設定で
・WordPressアドレス:www.(ユーザー名).sakura.ne.jp
・サイトアドレス:www.独自ドメイン
・一般設定の「パーマリンク」で「投稿名」
・「EASEL設定」で「作品タイプ階層準拠」
・一般設定の「パーマリンク」を再更新
と設定すると、今のところエラーが出ないのを確認しました。
また、
・サブディレクトリを「www.(独自ドメイン)」に設定
・WordPressアドレス:www.独自ドメイン
・サイトアドレス:www.独自ドメイン
・一般設定の「パーマリンク」で「投稿名」
・「EASEL設定」で「作品タイプ階層準拠」
・一般設定の「パーマリンク」を再更新
これでも大丈夫であると確認しました。ここから、「作品タイプ階層準拠」で時々出ていたエラーは回避出来そうです。
というか、EASELの更新を受けてからこっち、「Warning: Undefined variable」が全然表示されなくなりまして、むしろ今まではどうやった時に出たんだと、途方に暮れている状態です。いや、出ないのが一番いいので、歓迎すべき状況に間違いないのですが、実験が実験として成り立っていないと言うか……。途中で気がついた、「データベースが残っている状態でやり直していた」という行動を、「データーベースもまっさらにしてからやり直す」に変えたので、もしかしたらそこだったのかも知れません。
いずれにしても、お騒がせした事に違いはありません。申し訳ありませんでした。これから何か変な動きが出て消す事態になったならば、データベースも消してやり直す事にします。
今後ともEASELのお世話になります。完成して公開するのを目標に、頑張ります。
大変お世話になりました。ありがとうございます。 -
oninoゲスト
再び失礼します。これはWordPressの仕様なのだと思いますが、私が出した例では「Non-existent changeset UUID.」が出ると判ったので、この場で訂正させてください。
さくらインターネットのクイックインストールで・サブディレクトリを「www.(ユーザー名).sakura.ne.jp」で登録
・WordPressの一般設定で「WordPressアドレス:www.(ユーザー名).sakura.ne.jp」「サイトアドレス:www.独自ドメイン」と設定すると、カスタマイズで「Non-existent changeset UUID.」が出ます(何故かWebページには変更が反映される不思議)。
これを回避するには
・同サブディレクトリを「www.(独自ドメイン)」に設定
・WordPressアドレス:www.独自ドメイン
・サイトアドレス:www.独自ドメインにしないとダメのようです。
トピック違いかもですが、先に書いたように、実験の結果ダメだった誤った情報を訂正させてください。
お騒がせしました。
-
-
みききゲスト
いつもお世話になっております。
onino様と同じようなエラー表記が出たのですが調べても分からず、解決方法をご教示いただければと思い書き込みいたします。現在Wordpressを設置しているサーバーのPHPバージョンを7.4から8.1へ上げたいと思い、まずはローカルサーバー(Local [https://localwp.com/]で構築しています)で不具合がないかを確かめているのですが、サイトの上部に
Warning: Undefined variable $theme in C:\Users\○○\Local Sites\●●\app\public\wp-content\themes\easel\functions.php on line 863
Warning: Attempt to read property “Version” on null in C:\Users\●●\Local Sites\○○\app\public\wp-content\themes\easel\functions.php on line 863
というエラー構文が表示されました。(「○○」や「●●」の部分はローカルサーバーのユーザー名やディレクトリ名です)
自分自身で調べてみたところ「該当部分をisset()で囲むと良い」と書かれた記事が出てきましたので、そのようにしてみたのですが、今度は「このサイトで重大なエラーが発生しました。」と表示されてしまいサイト自体の表示ができなくなってしまいました。
ローカルサーバーなので仕様が違うのかもしれないですが、エラーの解決方法が分からずネット上に公開しているサイトのPHPバージョンを上げることができないので困っています。もしもお分かりになる方がいらっしゃれば、解決方法についてをご教示いただければ幸いです。
-
みききゲスト
すみません、自己解決しました。
isset()で囲む際コピー&ペーストで行っていたためか、余計なスペースが入っていたのが原因だったようでした。
慌てて書き込んでしまい申し訳ありませんでした。
-
-
-
投稿者投稿