0

カスタムフォルダにアップロードした直後にアップロードした画像/ファイルを移動できるようにする新しいプラグインに取り組んでいます。新しいメディア アップローダー (WP 3.5 以降) に問題があります。アップロードされたファイルを移動し、添付メタデータを生成する機能があります。を介してこの関数を呼び出しますadd_action(add_attachment, '_the_function')。問題は、このアクションを完了するために、従来のメディア ライブラリが関数の最後に添付ファイル ID をecho $post_ID出力する必要があることと、新しいメディア アップローダーが json データを返す必要があることreturn wp_send_json_success( $attachment )です。

新しいメディア アップローダーを使用してメディアをアップロードしたかどうか、または [メディア] -> [新規追加] でメディアをアップロードしたかどうかを確認するにはどうすればよいですか。

add_action( 'add_attachment', array($this, 'up_move_media_after_add_attachment') );

function up_move_media_after_add_attachment( $post_ID ) {

    //... foregoing code (moving to custom folder) ...

    # generates metadata for an image attachment and creates a thumbnail and other intermediate sizes of the image attachment
    $metadata = wp_generate_attachment_metadata( $post_ID, get_attached_file( $post_ID ) );
    wp_update_attachment_metadata ( $post_ID, $metadata );

    if ( ___???????___ ) {
        # upload from post via new media uploader, since 3.5
        $attachment = wp_prepare_attachment_for_js( $post_ID );
        return wp_send_json_success( $attachment );

    } else {
        # upload from media library
        echo $post_ID;

        # don't forget
        exit;

    }

}
4

1 に答える 1

0

さて、私は次の解決策を見つけました:

if ( basename($_SERVER['HTTP_REFERER']) == 'media-new.php' ):
    # upload from media library
    echo $post_ID;
    # don't forget
    exit;
else :
    # upload from post via new media uploader, since 3.5
    $attachment = wp_prepare_attachment_for_js( $post_ID );
    return wp_send_json_success( $attachment );
endif;
于 2013-09-01T14:43:40.213 に答える