web-dev-qa-db-ja.com

メディアライブラリに空白のサムネイルを表示する

私は10ブログでマルチサイトインストールを実行します。アップロードされた画像がメディアライブラリに表示されない場合を除き、他のすべてのブログは問題なく機能します。通常のサムネイルの代わりに空白の画像だけがあります。

  • [編集]をクリックすると[メディアの編集]ページに移動しますが、画像は表示されません。

  • [メディアの編集]ページの右側にある[保存]領域にファイルのURLをコピーしてブラウザのアドレスバーに貼り付けると、画像が表示されます。

  • 「メディアライブラリ」から「表示」をクリックするとページが表示されますが、画像は表示されません。

このブログは他のブログと同じ方法でインストールされたため、これを理解することはできません。

私はそれを確認しました:

  1. ファイルのアクセス許可はすべてのフォルダとファイルで755に設定されています
  2. 画像は正しいフォルダにアップロードされていますwp-content/uploads/sites/"サイトフォルダ"/"年"/"月"
  3. すべてのプラグインを非アクティブ化し、それぞれを再アクティブ化して、問題の原因となっているものがあるかどうかを確認します。
  4. 特定のブログをアンインストールして再インストールしました。

私が試したことのない唯一のことは、データベース内で直接何かをすることでしたが、どこから始めればよいのかわからないのです。

2
MasterKong

私は非常によく似た問題を抱えていました。8つのブログ(うち2つ)があるマルチサイトで。

私の場合、いくつかの画像のmeta_value "_wp_attachment_metadata"が wp_xx_postmeta テーブルで破損していることがわかりました。この問題の前に私が最後にしたことはいくつかの未使用のプラグインを削除することだったので、おそらく何らかのプラグインが原因で起こった。しかし、それらを再インストールしても解決しませんでした...

一言で言えば、私は正しい値を持っていた古いデータベースのバックアップからmeta_valueを回復しました。

これが私がしたことです:

0 - まず最初に、MySQLサーバーの両方のデータベースを同時に使用するために、OLDデータベースのSQLファイルを別のデータベースにインポートしました。

1 - 古いデータベースからwp_xx_posts内のすべての添付ファイルのIDを選択しました

SELECT * FROM wp_xx_posts where post_type='attachment';

「xx」は問題のあるブログの番号です。

2 - 古いデータベースからの添付ファイルに対して、wp_xx_postmetaのすべてのmeta_idとmeta_valueを選択しました

Select meta_id, meta_value from wp_xx_postmeta where meta_key = '_wp_attachment_metadata' and (post_id = 111 or post_id = ...);

すべての画像ID用。 Excelスプレッドシートとメモ帳の間でデータをコピー/貼り付け/置換することで、すべてのIDに対するクエリを簡単に作成できます。

3 - CURRENTデータベース にインポートされるwp_xx_postmetaの更新を含むSQLファイルを作成しました。このファイルは少し大きいかもしれず、各行は次のようになります。

UPDATE wp_xx_postmeta set meta_value = 'a:5:...a large serialized bunch of data' WHERE meta_id = 111;
UPDATE wp_xx_postmeta set ...

すべての画像に再度Excel /メモ帳を使用してください。

4 - それから私はmysql -u root -p current_database < sqlfile.sqlを使ってSQLファイルを実行しました

このサイトをリロードすると、すべてのサムネイルとすべての画像がメディアライブラリで正しく機能していました。

1
Moabdib