投稿を追加できません
-
うーん、何でしょうね…僕もそのメッセージは初めてですね。
保存時じゃなくて新規追加の時点で出るんですよね?
DBがいっぱいって事は考えにくいと思うけど…
1. とりあえずバックアッププラグインなどでバックアップをとる
2. データベース関連のプラグインを入れて、リビジョンを削除したり、データベースの最適化するを試してみてはどうかと思います。
データベースクリーンナップ系のプラグインの種類や使い方は…調べればいろいろ記事が出てくると思います!
すみません。別視点からコメントします。
私も同様の経験がないので、完全に山勘ですが、
投稿の新規追加の時点で、エラーになっていることを考えると、REST API 通信の失敗の可能性もあります。- WAF にブロックされている
- セキュリティプラグインが REST API を制限
- Basic認証や Cloudflare 等の干渉
- nonce エラー
- JavaScript エラー
- /wp-json/ への通信失敗
などのような原因が考えられますが、ブラウザの開発者ツールの Network / Console でエラーログを確認できれば問題の切り分けや絞り込みができるかもしれません。
↑上記で意図的に難しくコメントしたつもりはありませんが、
レンタルサーバーをお使いの場合、WAF(Web Application Firewall) の機能を一時的にOFFにしてみて挙動に変化があるかお試しください。かなり「雑な最終エラー」なので原因は複数考えられます。
まず切り分けとして、過去に投稿した記事を更新できるか試してみてください。
これが通る場合、WordPress本体やサーバー・DB側の問題の可能性は一旦下がります。
次に問題の記事の添付画像を一度すべて外して投稿できるか試してみてください。
それで投稿出来たら、画像ファイル名を短い英語にリネームして再アップロードすれば改善することが多いです。それでもダメな場合、私なら
差し障りの無い文章でテスト投稿
別のブラウザで投稿
wp-content/debug.logの確認
プラグインを一つずつ無効化
テーマ変更
WPの再インストール
くらいの順番で試してみます。こんにちは。
エラーメッセージがどこから出ているのか調べてみました。「データベースに投稿を追加できませんでした。」は、WordPress 本体(
wp-includes/post.phpのwp_insert_post()関数)から出ているもので、データベース(MySQL)への INSERT クエリが失敗した時に表示されます。該当箇所: https://github.com/WordPress/WordPress/blob/master/wp-includes/post.php#L4973
if ( false === $wpdb->insert( $wpdb->posts, $data ) ) {
if ( $wp_error ) {
if ( 'attachment' === $post_type ) {
$message = __( 'Could not insert attachment into the database.' );
} else {
$message = __( 'Could not insert post into the database.' );
}
return new WP_Error( 'db_insert_error', $message, $wpdb->last_error );
} else {
return 0;
}
}このコードでは、
$wpdb->insert()がfalseを返した場合にエラーとなりますが、その際 MySQL が返すエラーメッセージが$wpdb->last_errorに格納されています。このエラー内容を確認できれば、原因の特定がぐっと進みます。以下の手順で確認できますので、お試しいただけますか?
wp-config.phpをFTPやファイルマネージャーで開くdefine( 'WP_DEBUG', false );という行を探す- 以下の3行に書き換えて保存する
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );- もう一度「投稿 → 新規追加」を試す
/wp-content/debug.logというファイルが生成されるので、中身を確認する
db_insert_errorやWordPress database errorといった記述があれば、その内容をこちらに共有いただければ原因の特定が進むと思います。なお、確認が終わったら
WP_DEBUGはfalseに戻しておいてください。有効のまま運用するとエラー情報が蓄積され続けます。/wp-content/debug.logも削除してください。みなさまありがとうございます。
簡単にできそうなとこからやってみました・WP-Optimizeにて最適化
・WAF OFF変化なしでした。
過去の投稿記事の文字の編集はできましたが新規画像はできませんでした。
『データベースに添付ファイルを挿入できませんでした』となります。
メディアライブラリにあるものは可能でした。次試してみます。
ありがとうございます。
WAF は元の状態(ON)に戻しておいてくださいね。@rocketmartue さんのコメントにあるように、debug.log を確認できれば原因の絞り込みができると思います。
今の現象からの推測ですが、PHPのメモリ制限に引っかかっていそうですね。-
この返信は1ヶ月、 3週前に
Yukinobu Asakawaが編集しました。
PHPメモリ不足でこの特定のエラーメッセージが出る可能性はかなり低いです。
このエラーメッセージがちゃんと表示されているということは、PHP自体は正常に動いていて、MySQL への INSERT が失敗して false が返ってきて、エラーハンドリングも正常に走っているということなので、原因は PHP 側じゃなくて MySQL 側にあると思います。
例えば、テーブル破損、文字コードの不一致、max_allowed_packet の制限、ユーザー権限の問題、とか。
ですので $wpdb->last_error に入ってる MySQL のエラーメッセージを見るのが最短ルートです。
詳しい人に見てもらったところデータベースの容量がいっぱいでした。5141.02MB/5120MB
phpであれやこれや捨てたんですが減らない・・・・時間の都合で後日になりました。
今残ってるので一番でかいのはwp_postmetaの~1,076,045でした。
捨てていいものか調べてみます。
このトピックに返信するにはログインが必要です。