web-dev-qa-db-ja.com

すべてのサムネイルが生成された後に起動するフックはありますか?

画像と生成されたすべてのサムネイルを別のサーバーに(バックアップとして)アップロードしたいです。 add_attachment だけが見つかりましたが、これは画像がアップロードされpostmetaテーブルが更新された直後に発生します。

すべてのサムネイルサイズが生成されるまで待ってから、ファイルを取り出して他のサーバーにアップロードします。私の期待にマッチするフックはありますか?

5
sydev

wp_generate_attachment_metadata() を使用してWordPress canのサムネイルを生成します。 'wp_generate_attachment_metadata' およびこのフィルタは $ metadata および $ attachment_id フック関数に。

あなたのカスタム関数をこのフィルタにフックすることができます。

$ metadata:添付ファイルのメタデータ。必要なものは $ metadata ['sizes'] ['size-name'] です。
'size-name'はadd_image_size()で追加されたサムネイルサイズまたはデフォルトのサイズです。例えば.

$metadata[sizes] => Array
       (
           [thumbnail] => Array
               (
                   [file] => example_image-150x150.jpg
                   [width] => 150
                   [height] => 150
                   [mime-type] => image/jpeg
               )
           [medium] => Array
               (
                   [file] => example_image-4-300x194.jpg
                   [width] => 300
                   [height] => 194
                   [mime-type] => image/jpeg
               )
           [mysize] => Array
               (
                   [file] => example_image-4-400x400.jpg
                   [width] => 400
                   [height] => 400
                   [mime-type] => image/jpeg
               )
       )

ここから特定の添付ファイルに存在するサイズを知ることができ、それらのサイズ/サムネイルのみをアップロードできます。
これらのサムネイルを取得するには、wp_get_attachment_image_src($ id、$ size_name)のような関数を使用してサムネイルのURLを取得します。
(オプション) :以前にアップロードされた画像に対してもwp_generate_attachment_metadata()を再実行するために 強制サムネイル再生成 プラグインをインストールします。
これがあなたのために働くかどうか私に知らせてください。

6
devkabiir