当サイトはWordPressのマルチブログで運営しているのだけど、妊娠出産やら子育てやらでサブブログを放置していて、久しぶりに触ってみたら、なんだかサブブログだけ、画像がアップロードできない!

アクセス権はサーバーによる書き込みを許可していますか

などと怒られて順加さんが猿化。ウッキッキー!
メインブログではアップロードできてるわけで、アクセス権うんぬんの問題じゃない気がするけど、念のために問題ないことを確認。

というか、なんかアップロードディレクトリの設定が変??

色々調べてみたところ、wp-config.phpでUPLOADSを設定してあげると良いよってことで
公式ドキュメントを参考に修正を加えてみたら、とりあえずアップロードはできるようになった。

なったけど!

今度はアップロードされた画像のパスが変。
UPLOADSで指定したディレクトリに、確かにアップロードはされているけれど、管理画面の「メディア」で見ると、ファイルのパスが
/file[なんとかかんとか]
になっていた。

これはUPLOADSを修正する前にアップローダーがアップロードしようと試みていたパス。

さらに色々しらべてみたけど、そもそもこの問題は、WordPressのバグっぽい?
WordPressがアップグレードしていく過程で、どこかのバージョンから画像ファイルのパスが変更になったらしくて、そのあたりの設定の移行がうまくいかないとゴニョゴニョ
サーバのお引っ越しもしてるし(関係ないかもだけど)、どこかで設定が狂ったのかも?

参照したのは
このサイトとか
こことか

極めてわたしの状況と似ている。

DBのms_files_rewritingをゴニョゴニョして…みたいな話があるけれど、とりあえずアップロードはできているし、あまりよくわからないことをやりたくないので、アップロードした画像のパスがおかしいところは、.htaccessのRewriteRulesで対処することにした。

RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-content/uploads/$2 [L]

とりあえずこれで運用できてるから大丈夫かなあ?

WordPressの記事IDが連番にならずに飛び飛びで増えていくので、原因を調べたところ、リビジョン管理機能を使っているとそうなっちゃうらしいってことがわかったので、折角だからプラグインを使わずに無効化する方法を調べた。

wp-config.php

/** リビジョン管理を無効にする */  
define(WP_POST_REVISIONS, false);  
  
/** 自動保存の間隔を5日にする(実質の無効) */  
define(AUTOSAVE_INTERVAL, 432000);  

↓このコードよりも前に記述すること

/** Sets up WordPress vars and included files. */  
require_once(ABSPATH . 'wp-settings.php');

また、自動保存の間隔を30日とかすごく長くしたら、表示がおかしくなった。
具体的には「下書きとして保存」や「公開」のボタンが高速で点滅するような感じ。

上記は5日に設定したら治った。

また、タイトルを入力した時に走る自動保存を無効にするために以下のコードをfunctions.phpに追加する。

functions.php

/* 記事のオートセーブを無効 */
function disable_autosave() {
wp_deregister_script('autosave');  
}  
add_action('wp_print_scripts','disable_autosave');

参考サイトはいっぱいあってよくわからなくなったので割愛(ごめんなさい!!)

keyboard_arrow_up