フォーラム

不具合報告フォーラムはチケットなしでご利用いただけます。

Please or 登録 to create posts and topics.

アーカイブ一覧の際、カテゴリー表示の位置から以下の警告が表示されています。

お世話になります。

Arkheでブログを運用しています。
アーカイブ一覧の際、カテゴリー表示の位置から以下の警告が表示されています。
おそらく複数のカテゴリーを指定しているものです。

PHP8.0.25の際です。
Warning: Undefined array key 0 in /home/slashd/slashd.com/public_html/blog/wp-content/themes/arkhe/classes/Utility/Get.php on line 377

PHP7.4.33にするとカテゴリー自体が非表示になります。

ブログのフロントページでは問題ありません。

フロントページ:
https://www.slashd.com/blog/

カテゴリーアーカイブ:
https://www.slashd.com/blog/category/wordpress/

以上、よろしくお願いいたします。

WordPress 6.2.2
エックスサーバー
PHP7.4.33
PHP8.0.25

現在、Simplicity2からの移行中なので、いろいろなプラグインが重複しています。

【プラグイン】
All In One WP Security 5.1.9
All-in-One WP Migration 7.75
All-in-One WP Migration Unlimited Extension 2.51
AmazonJS 0.10
Arkhe Blocks Pro 2.22.1
Arkhe CSS Editor 1.2.2
Arkhe Toolkit 1.10.0
Classic Editor 1.6.3
Contact Form 7 5.7.7
Customizer Export/Import 0.9.6
EWWW Image Optimizer 7.0.2
Highlighting Code Block 1.7.0
Honeypot for Contact Form 7 2.1.1
IndexNow 1.0.1
Jetpack 12.2.1
LightStart - Maintenance Mode, Coming Soon and Landing Page Builder 2.6.8
My Arkhe Addon 1.0.0
Really Simple CAPTCHA 2.2
Search Regex 3.0.6
SEO SIMPLE PACK 3.2.0
SiteGuard WP Plugin 1.7.5
SyntaxHighlighter Evolved 3.6.2
Table of Contents Plus 2302
Throws SPAM Away 3.4.7
UpdraftPlus 1.23.6
WebSub (FKA. PubSubHubbub) 3.1.3
WordPress Popular Posts 6.1.3
WP External Links 2.58
WP Multibyte Patch 2.9
XML Sitemap & Google News 5.3.4
Yoast Duplicate Post 4.5

アップロードファイル:
  • arkhe.png

警告が出たままにしたくなかったので、PHP7.4.33にしてあります。

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

アップロードファイル:
  • arkhe02.png

問題のURLは以下に移動しました。

カテゴリーアーカイブ:

https://www.slashd.com/blog/category/various/

警告を止めるだけなら

if ( empty( $categories ) ) {
return;
}

でいいような気がしますが、根本的な対策になりません。

なぜ、$categories = get_the_category(); でカテゴリーが取得できないのかは、謎です。

カテゴリーの親が違う場合で、複数のカテゴリーなのですが、get_the_category(); の仕様の問題なのでしょうか?

対応が遅くなり申し訳ございません。こちら再現できずにいまして、

該当する関数の冒頭で
if ( empty( $categories ) ) { return null; } にはしているので、$categories[0] が存在しない状況だとエラー箇所にたどり着かないはずではあるのですが...。

377行目の手前で、var_dump($categories) するとどうなりますかね...?

一応、isset() で最後にも条件分岐してエラーにならないようにはしておきます...!

 

お世話になります。

377行目の手前で、var_dump($categories)してみました。

カテゴリーが出ない場合は以下。

array(1) {
[1]=>
object(WP_Term)#16111 (16) {
["term_id"]=>
int(7)
["name"]=>
string(9) "WordPress"
["slug"]=>
string(9) "wordpress"
["term_group"]=>
int(0)
["term_taxonomy_id"]=>
int(7)
["taxonomy"]=>
string(8) "category"
["description"]=>
string(0) ""
["parent"]=>
int(53)
["count"]=>
int(18)
["filter"]=>
string(3) "raw"
["cat_ID"]=>
int(7)
["category_count"]=>
int(18)
["category_description"]=>
string(0) ""
["cat_name"]=>
string(9) "WordPress"
["category_nicename"]=>
string(9) "wordpress"
["category_parent"]=>
int(53)
}
}

 

カテゴリーが出る場合は以下のようになりました。

array(2) {
[0]=>
object(WP_Term)#15879 (16) {
["term_id"]=>
int(72)
["name"]=>
string(9) "Marketing"
["slug"]=>
string(9) "marketing"
["term_group"]=>
int(0)
["term_taxonomy_id"]=>
int(72)
["taxonomy"]=>
string(8) "category"
["description"]=>
string(0) ""
["parent"]=>
int(153)
["count"]=>
int(13)
["filter"]=>
string(3) "raw"
["cat_ID"]=>
int(72)
["category_count"]=>
int(13)
["category_description"]=>
string(0) ""
["cat_name"]=>
string(9) "Marketing"
["category_nicename"]=>
string(9) "marketing"
["category_parent"]=>
int(153)
}
[1]=>
object(WP_Term)#15884 (16) {
["term_id"]=>
int(7)
["name"]=>
string(9) "WordPress"
["slug"]=>
string(9) "wordpress"
["term_group"]=>
int(0)
["term_taxonomy_id"]=>
int(7)
["taxonomy"]=>
string(8) "category"
["description"]=>
string(0) ""
["parent"]=>
int(53)
["count"]=>
int(18)
["filter"]=>
string(3) "raw"
["cat_ID"]=>
int(7)
["category_count"]=>
int(18)
["category_description"]=>
string(0) ""
["cat_name"]=>
string(9) "WordPress"
["category_nicename"]=>
string(9) "wordpress"
["category_parent"]=>
int(53)
}
}

 

キャプチャでは両方ともカテゴリーが出ているようですね?

 

再現出来ないということですので、当方のブログのプラグインかもしれません。

現在は旧テーマからArkheにしたばかりですので、同じような機能のプラグインが重複しています。

アップロードファイル:
  • cap.png

var_dump($categories) を抜くと、カテゴリーは非表示になります。

アップロードファイル:
  • hi.png

情報共有ありがとうございます。 何故かカテゴリー配列の最初の添字が0ではなくて1になってるんですね...。
それがなぜ起きるかが根本的な原因っぽいですね。引き続き少し調べてみます。

ありがとうございます。

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