WordPressで10万文字以上で投稿すると失敗する文字数制限の問題

これは私が最近遭遇した問題です。

WordPressにて1投稿あたり本文に10万文字程度を入力した上で投稿すると、投稿エラーは発生しないものの中身が空っぽになって事実上投稿に失敗します。

その失敗した記事は、管理画面の投稿一覧に表示されません。ですが一応内部的には投稿は成功していると認識されているようで、postidを指定するとその投稿に管理上アクセスすることができます。

つまり管理画面からは一見確認することができないゴミ投稿が存在してしまうことになります。

本当に文字数が原因なのかどうか原因を特定することにしました。

テーマの問題ではない

私はSimplicityを利用してその問題が起きたので、TwentyFifteenのようなデフォルトテーマでも10万文字投稿をやってみました。結果は同じくダメでした。

XMLRPCでも起こる

C#からXMLRPCを使って投稿するということをやっているのですが、その場合でも失敗しました。興味深いのは10万文字以上の記事を投稿してもしっかりPostIDが返ってきます。これはやはりWordpressの内部的には成功とみなされているようです。ですがそのPostIDの記事は表示されません。

プラグインをすべてオフにしても起こる

私はこの10万文字投稿実験を、インストールしたばかりのまっさらなWordpressでやってみました。プラグインはすべてオフにしました。それでも同様の問題が発生しました。

10万文字投稿を一度でもやるとBetter WordPress Google XML Sitemapsが動かなくなる

投稿記事の一覧をXML形式でサイトマップにしてくれるプラグイン、Better WordPress Google XML Sitemapsというものがあります。これを使っていたのですが、この10万文字投稿をしたとたんにXMLファイルが出力されなくなりました。GoogleSearchConsoleにてサイトマップ件数が0になっていたのでこの問題が判明しました。今は別のサイトマッププラグインに切り替えています。

最後に考えられる原因 SQLite Integrationか

私はMySQLを使っていません。SQLite IntegrationというプラグインでSQLiteで運用しています。考えられるWordpress本体以外の原因はもうこれしかないので、SQLite Integrationが原因ではないとしたらWordpress本体のバグということになります。ちなみにSQLiteにはレコードの文字列制限はないので、SQLiteのせいで10万文字問題が起きているというのは考えづらいです。