メディアライブラリの表示、画像の挿入がおかしくなりました
-
WordPress マルチサイト(4.0.1)を使用しています。
※あと、問題がわかってから、4.0.1から4.0.1日本語版にアップグレードしてしまっています。11月27日午前中の段階で、問題は何も無かったのですが、今日(11月29日午前8時少し前)に投稿しようとしたところ、メディアライブラリの表示で画像のサムネイルが一切表示されなくなっていました。
画像を挿入しようとしたところ、アップロード自体は成功したかに見えるのですが、サムネイルは表示されず、記事にも表示されません。どうなっているのかと思い、FTPで見ていったところ、これまで、
wp-content/uploads/site/*/~
にアップロードされていた画像ファイルが、
wp-content/blogs.dir/*/~
というところにアップロードされてしまっています。
つまり今日アップロードしたファイルが、前者の位置に無く、後者の位置にいってしまっています。
blogs.dirの作成日付は今日です。正直、なぜこんなことに(この2日で)なってしまったのか、どうしたらいいのか、わかりません。
投稿自体は作成され、表示もされるので、今のところ確認できた問題は、メディアライブラリと画像の挿入まわりのことです。
どなたか、ご存知のことがあればご教授お願いします。
また、これでは情報が足りないようであればご指摘いただけると助かります。よろしくお願いします。
-
追加なのですが、2日前までに投稿した記事は、今でも画像の表示がされています。
つまり、
メディアライブラリ:
2日前まで(wp-content/uploads/site/*/~)のものも今(wp-content/blogs.dir/*/~)のものもサムネイルが表示されない記事中:
2日前まで(wp-content/uploads/site/*/~)の画像は表示されるということになっています。
すいません、またまた追加です。
混乱していて申し訳ありません。
2日前までに画像の挿入をした場合のimgタグのsrcは、(wp-content/uploads/site/*/~)を含んだものになっており、そこに実際に画像ファイルがアップロードされているので、記事中に表示されるのは当たり前といえば当たり前の状態です。
ただし、現在ではメディアライブラリのサムネイルは表示されません。今は、画像の挿入をした場合のリンクが
(wp-content/uploads/site/)ではなく(files/)という場所を指すようになっています。
現在画像がアップロードされているのが、(wp-content/blogs.dir/*/~)で、その場所と異なっているので表示がされないのかと思います。
が、なぜこのように変わってしまったのかはさっぱりわかりません。追加です。
すいません、はっきり書いてなかったのですが、マルチサイトで運営しています。
全部のサイトで同じ症状です。他、カテゴリーやタグのスラッグの変更が出来なくなっています(編集しようとしても変更するテキストボックスが出ない)。
これも全部のサイトで同じ症状です。
画像の方は、自分でアップロードフォルダを作ってアップロードしてリンクすることで何とかしていますが、こちらはどうすればいいのか……。phpMyAdminなどでデータベースの項目を直接いじるしかないのでしょうか。もしかしたら他にも何か異常(?)があるかもしれません。
再インストールすれば直る問題なのでしょうか。プラグインを外してみたりしても変化なし。
管理画面から、4.0.1日本語版を再インストールしてみましたが変化なし。4.0.1英語版を再インストールしても変化なしです(現在はその後再度日本語版を再インストール)。他に何か出来ることがあればお願いします。
こんにちは
シングルサイトで運用中のブログを、マルチサイトに変更したのですか?
blogs.dirは、マルチサイトだけで作られるディレクトリで、ブログID毎のディレクトリとその中のfilesに画像が保存されます。
シングルサイトは、wp-content/uploadsに画像が保存されます。
ご返事ありがとうございます。
シングルサイトで運用中のブログを、マルチサイトに変更したのですか?
いえ、元からマルチサイトで運用していました。
お伺いした理由は、
blogs.dirの作成日付は今日です。
となっていたためですが、マルチサイトで以前は、blogs.dirがなかったのですか?
今は、画像の挿入をした場合のリンクが
(wp-content/uploads/site/)ではなく(files/)という場所を指すようになっています。マルチサイトなら、投稿からアップロードしたファイルは、マルチサイトであれば通常files/blog_id で管理されるので、これが 以前にはなかったというのは???
以前のバージョンは、相当古いものですか?
ご返事ありがとうございます。
マルチサイトで以前は、blogs.dirがなかったのですか?
はい、ありませんでした。
以前にアップロードしたファイルが格納されていたのは、(wp-content/uploads/sites/*)です(上では「site」と書いていましたが「sites」です。*の部分は各サイトを表す数字(blog_id?)です)。以前のバージョンは、相当古いものですか?
今年の2月にインストールしたものです。
ただ、wp-config.phpは前に使用していたファイルから作ったので、その際に古い設定か何かが混ざったかもしれません。あてずっぽですが
wp-includes/ms-files.php というファイルがあれば、
サイトのルートの
.htaccessにRewriteBase の直後に以下を書き込んでみてください
#uploaded files RewriteRule ^(.*/)?files/$ index.php [L] RewriteRule ^(.*/)?files/(.*) wp-includes/ms-files.php?file=$2 [L]ご返事ありがとうございます。
上記の記載で、メディアライブラリで、新しくアップロードしたファイルのサムネイルが表示されるようになり、記事中に画像の挿入が可能になりました。
ただ、メディアライブラリでは以前に(11月27日以前に)アップロードしたファイルのサムネイルが表示はされないというのは変わりありません。
また、今回の状況の変化が何によって起こったのかわからない以上、また特に理由不明で元に戻ったり別の状況になる可能性もあるかもしれず、このままメディアライブラリを使用するのは心配です。カテゴリーとタグのスラッグの件もありますが……。※それからそもそも根本的な疑問なんですが、現在のバージョン(4.0.1)では、(blogs.dir/*)というディレクトリが使用されるのが普通なんですか? それとも私の以前の状況のように(wp-content/uploads/sites/*)が使用されるのがデフォルトなんですか? 検索してみても古いバージョンの状況しかわかりませんでした。
※それからそもそも根本的な疑問なんですが、現在のバージョン(4.0.1)では、(blogs.dir/*)というディレクトリが使用されるのが普通なんですか? それとも私の以前の状況のように(wp-content/uploads/sites/*)が使用されるのがデフォルトなんですか? 検索してみても古いバージョンの状況しかわかりませんでした。
(blogs.dir/*)というディレクトリが使用されるのが普通なんですか?
はい、そうです。(マルチサイト)
ms-files.phpによる画像等の表示は、うる覚えですが、現行のバージョンでは使用されなくなっていたんじゃないかと、、、
たしか、WordPress3.4-3.5で変更になっていると思いますので、そのあたりで調べてみてください
それと、管理画面の 投稿とか、メディアとかで、javascript関連のエラーを調べてみるといいと思います。
ご返事ありがとうございます。
それと、管理画面の 投稿とか、メディアとかで、javascript関連のエラーを調べてみるといいと思います。
.htaccessを戻して動かしてみました。
Google ChromeのF12でコンソールなどを見てましたが、メディアライブラリのページではJavaScriptらしきエラーは特に見当たりません(画像ファイルサムネイルが見つからないという表示ばかり)。
他も特にそれらしい表示はないです。そもそもコードのどこかのif文で切り替わったので動作が変わったと思い、コードを追っています。
wp-includes/function.phpの1750行目からの部分で、前者から後者へ切り替わったのかと思いますが、ここが何を判別しているのかよくわかりません。コードよりコメントが長いのですが、コメントの意味がよくわかりません???if ( ! get_site_option( 'ms_files_rewriting' ) ) { /* * If ms-files rewriting is disabled (networks created post-3.5), it is fairly * straightforward: Append sites/%d if we're not on the main site (for post-MU * networks). (The extra directory prevents a four-digit ID from conflicting with * a year-based directory for the main site. But if a MU-era network has disabled * ms-files rewriting manually, they don't need the extra directory, as they never * had wp-content/uploads for the main site.) */ if ( defined( 'MULTISITE' ) ) $ms_dir = '/sites/' . get_current_blog_id(); else $ms_dir = '/' . get_current_blog_id(); $dir .= $ms_dir; $url .= $ms_dir; } elseif ( defined( 'UPLOADS' ) && ! ms_is_switched() ) { /* * Handle the old-form ms-files.php rewriting if the network still has that enabled. * When ms-files rewriting is enabled, then we only listen to UPLOADS when: * 1) We are not on the main site in a post-MU network, as wp-content/uploads is used * there, and * 2) We are not switched, as ms_upload_constants() hardcodes these constants to reflect * the original blog ID. * * Rather than UPLOADS, we actually use BLOGUPLOADDIR if it is set, as it is absolute. * (And it will be set, see ms_upload_constants().) Otherwise, UPLOADS can be used, as * as it is relative to ABSPATH. For the final piece: when UPLOADS is used with ms-files * rewriting in multisite, the resulting URL is /files. (#WP22702 for background.) */ if ( defined( 'BLOGUPLOADDIR' ) ) $dir = untrailingslashit( BLOGUPLOADDIR ); else $dir = ABSPATH . UPLOADS; $url = trailingslashit( $siteurl ) . 'files'; }カテゴリーとタグのスラッグの方ですが、wp-admin/edit-tag-form.phpの88行目の
<?php if ( !global_terms_enabled() ) { ?>
で判別しているのかと思いますが、これもちょっとこの先どこを見ていったらいいのかよくわかりません。コードで分岐しているということは、どこかの設定(?)を変更すれば、どれも元の状況に戻せるものだと思うのですが……。
わからないことだらけでご迷惑をおかけしますが、何かご存知でしたらよろしくお願いします。
トピック「メディアライブラリの表示、画像の挿入がおかしくなりました」には新たに返信することはできません。