画像がポストに表示される実際のサイズにサイズ変更する方法はありますか?大きな画像をインポートしてからビジュアルエディタでサイズを変更するユーザがいます。最初に画像エディタを開いて画像のサイズを変更して保存し、別の添付ファイルとしてアップロードしなくても、必要なサイズになるまで画像をドラッグするだけなので、これは簡単です。もちろん、これは時々投稿の幅が100ピクセル、実際には1500ピクセルの画像になります。
新しい投稿が保存されたときにこれを行うプラグインはありますか?既存のフルサイズの画像(リンク用、または後でサイズ変更するため)を保持したいのですが、余分なサイズを追加する(そしてそれを_wp_attachment_metadata
オブジェクトに保存する)ので、この投稿の画像は正しいサイズになります。フルサイズの添付ファイルに。
もちろん、既存の投稿もすべて一度だけ処理する必要があります。 <img>
タグにはwidth
、height
、またはそれらのどれも含まれていないかもしれません:これはすべてクリーンアップされるべきですので、それらはすべて正しいwidth
、height
およびそのサイズのイメージを持ちます。
一緒に私のニーズを解決する2つのプラグインを作成しました。現在、それらは初期のアルファ段階にあり、すべてのコメントを歓迎します。
基本プラグインは On-Demand Resizer です。このプラグインは、アップロードディレクトリに存在しないファイルの要求を監視し、必要に応じて要求されたサイズの画像を作成します。たとえば、image-200x100.jpg
はimage.jpg
を作成して返しますが、サイズを200 x 100ピクセルに変更します。画像はその名前でディレクトリに保存されるため、以降のリクエストはサーバーによって直接処理されます。
2番目のプラグイン imgタグのサイズ変更 、<img>
タグを変更して、src
属性に幅が含まれるようにしますおよび/または高さデータ。これにより、最初のプラグインで正しい画像を提供できます。一緒に彼らは私がしたいことをし、すべての既存の投稿を変換するために一度だけの関数を作成する必要がありますが、それは簡単なはずです(一度だけ実行するもののためにthe_content
にフックしたくない)。
3番目の「ボーナス」プラグイン、 仮想中間イメージ は、WordPressで新しいイメージをアップロードするときに中間イメージの作成をインターセプトします。リクエストされた場合、最初のプラグインによって作成されたままなので、実際に使用されない限り、ディスク容量を消費せずに複数の画像サイズを指定できます。これは最初の2つの作業には必要ありませんが、簡単に追加でき、WordPressイメージエディターを回避する必要があるという事実を強調していますが、作成するときにそれを行います。 私のサムネイルエディター 、最初のプラグインも使用します。
プラグインディレクトリで"resize"
または"crop"
(後者は もう1つの質問 )を検索し、私の調査結果を 一般のGoogleスプレッドシート に記録しました。 プラグイン検索では結果番号が非常に混乱します("resize"
検索の最後のページに「273のプラグインのうち145-150を表示しています」と表示されます)。セミ関連のメモ:誰もが世界には別のスライドショープラグインが必要だと思うようです。 content_save_pre
がthe_content
より重い構文解析を行うためのより良いフィルターになるかもしれないことを理解している人はほとんどいません。
私はまだこれらのプラグインのどれもテストしていませんが、ここに私が欲しいことをするように思われるプラグインのリストがあります。括弧内に「互換性のある」までのバージョン番号を追加しました。
[img]
ショートコード(2.9.2)個人的な考え: 最初の4つはURLを動的なページ(
/wp-content/plugins/my-plugin/image.php?src=[original src]&w=100&h=50
のようなもの)に書き換えます。キャッシュの形式はさまざまです。 ImageScalerが採用するアプローチと同様に、必要に応じて作成される実際のイメージを好みます。しかし、これを分割して(そしてコメントにhakreの提案を含めて)最初にすべてのURLを/wp-content/uploads/2010/11/image.jpg
から/wp-content/uploads/2010/11/image-100x50.jpg
に書き換えてから、欠けている画像をスクリプトに作成させます。このイメージに対する最初の要求でイメージが作成され、それ以降のすべての要求でこの作成されたイメージが使用されます。これにより、機能を異なるプラグインに分割することもできます。この解決策は別の回答として投稿します。
これらのプラグインは画像を特定の最大サイズに制限します(これは$content_width
を指定するのとどう違うのですか?):
次のプラグインは他の理由からも興味深いです。
これはCommunity Wikiの投稿なので、新しいプラグインが見つかったら更新することができます。
Wordpressには、設定可能な3つのデフォルトサイズ(小、中、大)があります。これらを使用すると、Wordpressはサイズ変更されたコピーを作成します。現在のスタイルに合うようにそれらを使用して番号を設定するのはおそらく良いスタイルです。これにより、ページ全体で画像のサイズが異なるわけではなくなり、テーマの変更時にグローバルに調整できます。
最近リリースされた Image Pro プラグインはまさにこれをしているようです。まだ自分自身をテストしていない、デモは非常に印象的に見えます、貧しいブラウザの互換性に注意してください(Firefoxのみ現時点で)。
Timthumbを利用して変数を渡し、画像のサイズ/サイズとズームレベルを自動的に変更することについてはどうでしょうか。このようにしても、元の画像サイズを維持することができます。あなたがこの行にいくつかの例が必要な場合は私に知らせてください。