TiddlyWikiのVer5.2.3がリリースされたので、早速ダウンロードして日本語化し、日付が正しく表示されるのを確認した。
今回のリリースからふうせん(@FU-SEN)さんの貢献により、日本語プラグインをインストールするだけで日付が正しく表示されるようになったのだ。
そこで、ダウンロードコンテンツにTiddlyWikiを追加し、アナウンスしようとしたが・・・。
記事を更新しても保存できない現象
図のように、記事(画像はダウンロードページの内容)を書き、図赤枠「更新」ボタンをクリックする。
すると、ページが更新されて内容が・・・保存されてねーじゃん!?Σ(゚Д゚ノ)ノ
図の上部に赤下線で「投稿を更新しました。」って言うとるやんけ!ワシの記事どこやったんじゃあ、ボケェ!!
記事が更新されなかった原因
先に結論から述べると・・・
図の絵文字(機種依存文字)が記事内にあったため、どうやらWordPressでは認識できず、それで記事丸ごと保存が出来なかったようだ。なんで?
そこで、絵文字を削除して更新してみると、図のようにちゃんと保存が出来る。
UnicodeのEmojiがWordPressで処理出来ないとは、想定外すぎて原因が分かるまで丸2日も無駄にしてしまった。
記事が保存されないその他の原因
私の場合は絵文字だけが原因だったが、調べてみると次の原因で記事が保存出来ないケースがあるようだ。
- サーバに空き容量がない
- max_input_varsのデフォルト値の1000を超えた
- WAF(Webアプリケーションファイアウォール)が有効になっている
上記 1. に関しては、WordPressでサイト運営を長くやっていると、知らず知らず契約しているレンタルサーバの空き容量が不足してしまうこともあるだろう。
しかし、普段サーバの空き容量を気にしていないと、知らない内に契約ディスク容量が一杯になっている、なんてこともあり得る。
この場合は削除出来る不要なファイルを地道に削除するか、よりディスク容量が大きいプランに切り替えるしかない。
上記 2. と 3. に共通しているのはWordPressのブロックエディタ(Gutenberg)で、従来のクラシックエディタでは文章と画像は別々に保存されるが、ブロックエディタでは文章と画像を一度に送信・保存するため、PHPの max_input_vars(PHP5.3以降で追加された設定)のデフォルト値を超えてしまう場合があるようだ。
また、このブロックエディタからのデータ送信をサーバのWAFが「ロボットからのスパム」としてブロックしてしまい、保存が出来ないケースが発生するようだ。
上記 2. の場合はサーバの php.ini を変更するしかないし、上記 3. の場合もサーバのWAFの設定を変更する必要がある。
ブロックエディタは2018年のWordPress5.0から採用されたが、私のようにWordPress5.0より前から使っている人は(前章の図を見れば分かると思うが)クラシックエディタをしつこく使っていて、ブロックエディタに移行していない人は多いと思う。
しかし、最近WordPressを始めた人はブロックエディタが当たり前だろうから、上記の原因で記事が保存出来ない場合が発生するのだと思われる。
おわりに
まさか絵文字が原因とは思わなかったため、WordPressをデバッグモードにしてデバッグログを追いかけたり、サーバの設定を変えたり、散々ググりまくったが、原因が分からなかった。
別の記事(TiddlyWikiのマークダウン記法対応版)を書いても保存が出来ないので、こりゃヤバイ!と焦ってしまった。
思い付くことは全部試したが、やはり保存できず問題が解決しなかったため、「これはゼロベースで前提から疑おう」と思い、ふと記事内容を見てみると「この絵文字かな?」と絵文字を削除したら問題なく保存が出来た。
分かってしまえばなんてことない原因だが、本稿が困り果てている人のお役に立てればなによりだ。
Warning: strpos() expects parameter 1 to be string, array given in /home/eware/dajya-ranger.com/public_html/wp-includes/compat.php on line 498
Warning: preg_match_all() expects parameter 2 to be string, array given in /home/eware/dajya-ranger.com/public_html/wp-includes/shortcodes.php on line 155
Array