web-dev-qa-db-ja.com

アップロードフォルダ、Media Libraryデータベース構造のクリーンアップ

私はBlogger.comで始まった古いブログのアップグレードとクリーンアップを行っています。その後、自己ホスト型のWordPress 2.1、2.3、そして今は3.0に移行しました。投稿内の画像はあちこちに散らばっています。それらのほとんどは/wp-content/にありますが、すべてが/wp-content/uploads/または/wp-content/uploads/year/month/にあるわけではありません。他の人はまだblogger.com画像サーバーを参照しています。それらすべてを/wp-content/uploads/year/month/に統合したいのですが、これは「正しい」場所だと思いますか?これにより、後でアップグレードが容易になります。

これを行うための最良の方法は何ですか?メディアライブラリがそれらすべてを管理できるように、メタデータも更新したいと思います。私はこれに関する文書を見つけることができませんでした、それを見逃した場合は申し訳ありません、それを私に指摘してください。

もちろん、古い場所から新しい場所へのリダイレクトを提供します。これを行うための最良の方法は何ですか?プラグインのテンプレート404.php、ロギングを追加したいので、参照ページを見つけて修正することができます。

(この質問は もともとWordPressサポートフォーラムで尋ねられました しかし、そこには役に立つ答えがありませんでした)。

10
Jan Fabry

W3-Total Cacheには、すべての投稿をスキャンし、外部の画像をメディアライブラリにインポートしてパスを新しい場所に変更する機能があります。

スクリーンショットを見る

alt text

7
Chris_O

正しい場所は私が言うだろう現在の設定です。そのため、(年/月サブフォルダの代わりに)1つのアップロードフォルダを使用する場合は、それを使用します(非常にいっぱいになりますが、並べ替えるのが簡単になります)。データベース内の-Pathが通常はその仕事をします。

すべてが1つのフォルダに入った(そしてソートされた)後は、フォルダデザインを再度変更し、データベースから日付を読み取るPHPスクリプトを使用してファイルを正しいディレクトリに移動できます。まったく同じスクリプトでも、同様にURLパスを採用する必要があります。

それはマイクが提案したのとまったく同じスクリプトのようなものです。

現時点では、WP UIは手動でファイルを移動または名前変更することをサポートしていないため、独自のコードに縛られています。とにかくバッチにとっては意味があります。

既存および関連プラグイン

  • サーバーから追加(Wordpress Plugin) - "サーバーから追加"はWebサーバーのファイルシステムからWordPressのアップロードマネージャにメディアとファイルをインポートするためのクイックプラグインです。
2
hakre

@ Jan Fabry:あなたはたぶんそれぞれのケースに別々に取り組む必要があるだろう、すなわちBloggerは画像をホストし、wp-contentの外側にあるものなど。

Bloggerからインポートするためのプラグインです。しばらくは更新されていませんが、まだ動作するか、少なくとも使用可能なコードがある可能性があります。

まだ動くかもしれないし、動かないかもしれない古いプラグインもあります。

それを超えて、私はあなたのファイルをスキャンし、埋め込み画像のURLを探すためにあなたの投稿をスキャンし、交差リストを作成し、そして投稿内のファイルを移動しそして参照を更新するPHPスクリプトを書く必要があると思います。それとも、あなたはラッキーになっても、そのプラグインはまだ機能し、あなたのためにそれをするでしょう!

がんばろう。

1
MikeSchinkel

たぶん(そしてそれは将来の読者のためのものです - それは古いQです)あなたはすべての 'post_type' => 'attachment'をリストしてそこから分離することができます。私は投稿を取得し、1つの配列にさまざまな場所を保存することを意味します。次に、これを整理して、画像がどこに横たわっているのかを概観します。

0
kaiser