その他

プラグインのアンインストール後に残り続けたpostmetaの削除手順[No97]

スポンサーリンク

WordPressでソースコードを綺麗に表示させるプラグインとして「SyntaxHighlighter Evolved」を利用していましたが、「SyntaxHighlighter Evolved」をアンインストールし「prism」を使うようにして、しばらく時間が経過します。

先日、Google Search Consoleを確認すると、「カバレッジ」の「除外」の「見つかりませんでした(404)」に以下URLが含まれていることに気付きました。

https://bookalittle.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shThemeMidnight.css?ver=3.0.9b

今回は私が調査や対応したことを備忘録として残しておきたいと思います。

調査内容

「SyntaxHighlighter Evolved」はアンインストールしているが、何故か、以下URLがGoogle Search Consoleの「カバレッジ」の「除外」の「見つかりませんでした(404)」に表示されました。

https://bookalittle.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shThemeMidnight.css?ver=3.0.9b

WordPressの「プラグイン」の「インストール済みプラグイン」には、プラグイン名に「syntaxhighlighter」が付くプラグインはありませんでした。

ファイルサーバーで「public_html > wo-content > plugins」を確認するも同プラグインはありませんでした。

Google Search Consoleで「見つかりませんでした(404)」となったURLの記載があったため、次の確認を行いましたが、「syntaxhighlighter」が関係していそうな情報はありませんでした。

  • その投稿記事の「カスタムフィームド」で「syntaxhighlighter」が含まれているかどうか確認する。
    ※投稿記事内の「設定」、「パネル」タブを選択していき、「カスタムフィールド」をオンになっている場合のみ確認可能。
  • その投稿記事を開き、「ページのソースコードを表示」で「syntaxhighlighter」が含まれているかどうか確認する。

投稿記事のXMLファイルで確認

下記リンク先の記事を参考に、「設定 > エクスポート」で出力したXMLファイルで「syntaxhighlighter」が含まれるものを取得しました。

no image
【プラグイン不要】WordPressで任意の記事情報を抽出する方法[No96]
今回は、WordPressで記事タイトルや記事URL(投稿ページのURL、固定ページのURL)、記事のメタ情報などの任意項目の値をプラグインなしで抽出する方法を紹介します。 プラグイ ...

上図で赤枠を囲った箇所の直後は、</item>になっているので、887行目のタイトルの記事のメタではなく、これより上の記事のmetaであることが分かります。

phpMyAdminのSQLサーバーで確認

各テーブルを開き、「syntaxhighlighter」で文字列検索を行うと、下図のように「wp_options」「wp_postmeta」テーブルでヒットしました。

※既に「syntaxhighlighter」から「prism」に移行しているため、「wp_posts」テーブルにはありませんでした。

「wp_options」テーブルには、プラグインの設定情報が格納されています。アンインストール後でも残っているようです。プラグインがアンインストールされていて、「syntaxhighlighter/syntaxhighlighter.php」が確認できなかったため、「SyntaxHighlighter Evolved」をインストールし確認しました。インストールすると下図のようにフォルダが出来ました。

「syntaxhighlighter.php」ではどうやら「wp_postmeta」で「meta_key」が「_syntaxhighlighter_encoded」となっている「post_id」の投稿記事に「syntaxhighlighter」の処理がされるようでした。

また、「wp_postmeta」テーブルで「_syntaxhighlighter_encoded」が設定されている投稿は、以前記事内で「syntaxhighlighter」を利用していたものであったと記憶していました

※一時的にインストールした「SyntaxHighlighter Evolved」はすぐ削除しました。

スポンサーリンク

対処手順

「wp_postmeta」テーブルで「meta_key」が「_syntaxhighlighter_encoded」となっている項目を削除しました。削除すると、下図のように先程はあった「syntaxhighlighter」の「wp:postmeta」タグのものが無くなりました。「wp_options」テーブルのものは変更や削除などを行っていません。

※削除する時は、必ず、バックアップを取っておきましょう。

この作業で「見つかりませんでした(404)」が対処できたかは、現段階では確認できません。

備考

今回のエラーは、Google側が現在のサイト記事を参考にしていなかった可能性があります。また、一定期間、Googleでは古い情報(記事URL)などにアクセスするようです、もしかしら本件もそうだった(古い情報にアクセスしていた)のかもしれません。

参考サイト/関連サイト

WordPressのデータベースのテーブルってどうなってるの? - イラ備忘録

WordPressのデータベースの中身はどうなっているのか? - wp.geek

WordPressで学ぶデータベース(MySQL)の基礎[リレーション編] - webOpixel

【WordPress】生成されるデータベースの中身の詳細。情報・データがどのテーブルに保存されるか?場所と内容のまとめ

【WordPress】で不要なカスタムフィールドをデータベース毎削除する方法 - REALINE

最後までお付き合いいただきありがとうございます!

この情報が誰かの役にたてれば幸いです。

スポンサーリンク

-その他