【WordPress】置換したはずなのに変わらない

色々やっていたらおかしな状態になってしまった問題('A`)

 

【WordPress】Post Snippetsの動きが怪しい

 

まず落ち着こう。深呼吸。

 

 

 

 

Post Snippets から Shortcoder に変えた。

変えた後のショートコード挿入は問題なく行えている。OKここに問題はない。

 

過去分のショートコードを Shortcoder の形式に置換しようと

Search Regexを使ったらエラーが出た と。

正確には画面上は正常終了しているように見えていて、

致命的なエラーが出たときにメール通知してくれるというWordPress 5.2~の機能で

メールが飛んできてエラーであることを知った。

 

 

解析

 

「WordPress 置換 プラグイン」で検索すると感覚的には8割ぐらいの割合で

Search Regex の記事が見つかる。

そんな Search Regex だけど、最終更新は4年前。

今のWordPress(やPHP)のバージョンで正常に動く保証はどこにもない。

 

面倒だが詳細を追ってみるか。

 

メールで送られてきたスタックトレースはコレ。

※サーバ内のパスが出ているので**********で伏せてある。

エラータイプ E_ERROR が **********/wp-content/plugins/search-regex/view/results.php ファイルの 26 行目で発生しました。 エラーメッセージ: Uncaught Error: Call to undefined method SearchRegex::base_url() in **********/wp-content/plugins/search-regex/view/results.php:26
Stack trace:
#0 **********/wp-content/plugins/search-regex/search-regex.php(130): include()
#1 **********/wp-content/plugins/search-regex/search-regex.php(116): SearchRegex->render('results', Array)
#2 **********/wp-includes/class-wp-hook.php(286): SearchRegex->admin_screen('')
#3 **********/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters('', Array)
#4 **********/wp-includes/plugin.php(465): WP_Hook->do_action(Array)
#5 **********/wp-admin/admin.php(253): do_action('tools_page_sear...')
#6 **********/wp-admin/tools.php(10): require_once('/**********...')
#7 {main}
thrown

 

search-regex/view/results.php の26行目がエラーを出してますな。

というわけで、ソースのその箇所を見る。

 

<img src="<?php echo plugins_url( '/images/small.gif', $this->base_url() ); ?>" style="display: none" alt="pre"/>

 

・・・・・。

 

画像のパスを取ろうとして失敗してる。

無視して良いエラーだな。

 

処理はちゃんと終わっていると思って良いんだろう・・・・・・か?

 

確かにもう一度同じ条件で検索すると結果は0件になるんだけど

記事のページ開くと古いショートコード名のままだからなぁ・・・。

 

 

気持ちが悪いので別の置換プラグインを入れて試してみよう。

試したのはBetter Search Replace。

このプラグインはテーブル指定をした上で置換を行う。

不慣れな人はこのあたりからワケがわからなくなるかもしれないw

記事本体は「※接頭語※_posts」になる。

データ量が多すぎるテーブルはリミットを上げられるけど50,000までなので

場合によっては溢れる可能性がある。

ちなみに俺の記事数は4,500程度。約8年2ヶ月 毎日書いてこの量。

 

ここでも検索には数件しか引っかからず。

Search Regex で置換した後に投稿した記事を直し忘れていたので、多分それ。

 

 

DB直

 

しかし・・・なんで検索に引っかからないのに、WordPressのエディタで見ると

古い情報のままなんだろうか。

 

そもそも本当に置換できてる?

というのが気になったのでDBを直接見ることに。

 

DBに接続して件数取得。

select count(*) from ※接頭語※_posts where post_content like '%※ショートコード名※%';

 

・・・む。0件だ。

 

念のためレコードの中も見ておこう。

エディタで古いショートコードが表示される記事を選ぶ。

俺の場合、パーマリンクを"基本"にしているのでURLのp=9999の数字部分がキーになる。

select post_content from ※接頭語※_posts where ID='9999';

 

 

・・・あれ。

DBのデータはちゃんと置換されてるぞ?

 

 

どっから出てきたんだ置換前の文字列!?((((;゜Д゜))))

 

To Be Continued

 

 

カテゴリー: Web, ソフトウェア, 技術的 タグ: , , , ,  [パーマリンク]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です