WordPressで画像をアップロードする際のファイル名が同じであれば、強制的に上書き

Last Updated: 2023 年 11 月 30 日 4のコメント

WordPressで、既存のにアップロードされたメディアファイルと同じ名前のメディアファイルをアップロードする場合は、新たにアップロードする画像ファイルのファイル名の後ろに-1、-2のように数字が追加され、従来のような名前のメディアファイルと区別されます。

WordPressで同じメディアファイルのアップロード時
アップロードする画像のファイル名と同じ名前のイメージファイルが既にメディアライブラリにアップロードされた場合、新たにアップロードされたファイルの名前の後に数字が付く。

メディアライブラリにアップロードされた既存のメディアファイルを同じ名前のメディアファイルと交換したい場合があります。 既存のアップロードした画像を新しいバージョンのイメージに更新するには、文を修正して、イメージを交換するが、簡単にメディアライブラリから画像ファイルを同じ名前の新しいファイルと交換する文を変更する必要がなくなります。

WordPressで画像をアップロードする際のファイル名が同じであれば、強制的に上書き

この場合は、次のようなコードを使用しているテーマの関数ファイルに追加すると、同じ名前のメディアファイルを強制的に上書きして、交換されます。

必ずチャイルド関数を作って作業してください。 それ以外の場合、テーマが更新されるとコードは消えます。 チャイルドテーマ(子テーマやサブテーマ)の詳細については、WordPress チャイルドテーマ活用する「を参考にしてください。

// 파일명이 동일한 メディア 파일 덮어쓰기
// Force to replace existing media files when uploading media files with the same filenames
add_filter( 'sanitize_file_name', 'filename_filter_wpse_28439', 10, 1 );

function filename_filter_wpse_28439( $name ) 
{
    $args = array(
        'numberposts'   => -1,
        'post_type'     => 'attachment',
        'meta_query' => array(
                array( 
                    'key' => '_wp_attached_file',
                    'value' => $name,
                    'compare' => 'LIKE'
                )
            )
    );
    $attachments_to_remove = get_posts( $args );

    foreach( $attachments_to_remove as $attach )
        wp_delete_attachment( $attach->ID, true );

    return $name;
}

// 출처: https://wordpress.stackexchange.com/questions/28439/how-to-force-media-manager-to-overwrite-files-of-same-name

上記のコードは、長いが、最新バージョンの WordPress와 Avadaがインストールされて WordPressテストしてみるとうまく動作しますね。

同じ名前のイメージファイルをアップロードして、キャッシュを削除した後に少し時間が経過すると、そのイメージが使用された文でも画像が交換されます。 キャッシュのためにすぐに交換されないことがありますので、キャッシュを削除して、少し待って、新しいイメージに変わることです。

ファイル名が同じメディアファイルを警告なし交換されます。 したがって、上記のコードを使用する場合は、慎重を期してください。 下手すると、意図せず、他の画像が交換されることがあります。

もう一度テストしてみると、今月アップロードされた画像に対してのみ正しく機能しているようです。 既存のイメージが削除される可能性があるため、このコードを実行する前に必ずバックアップを取るのは安全です。

他の方法で メディア置換を有効にする 같은 WordPress プラグインを使用できます。 このプラグインをインストールすると、メディアライブラリでイメージファイルを置き換えるオプションが提供されます。

メモ:


4のコメント

コメント

  1. こんにちは
    WordPressでホームページ制作をして情報パッケージの様に書かれました。 おかげでたくさん学びました。

    その記事を読んで「ファイル名が同じメディアファイルを上書きする」コードをhello elementor テーマfunctions.phpファイルに適用してみました。 このテーマでは、コードが反映されていないかファイル名が同じ新しいイメージファイルをアップロードしても、既存のイメージファイルのままの状態でコメントを残すようになりました。

    このような場合は、上記のEnable Media Replaceプラグインを使用することをお勧めしますか? 上書きする画像の数がかなりなる状態です。

    応答
  2. 議論がそうだけどヨリョかヌキヌンゲおりメッセージを残します。
    まったく、開発者に聞いても、無条件にカスタムをする必要がありそうだった機能がここにありますね
    ユーザーがFTPであえてアップロードしなくてもされ、ビルダーで画像を訪ねて直接削除して交換しなくてもされている機能を探していました。

    WordPressを使用している人にとっては、多分「当然、これほど機能は誰かが作ったかもしれない機能」だったかもしれません。
    しかしながら、私は著者を高く評価する部分が、このような部分は、実際に実務だけ感じることができるディテール部分というものでした

    カフェ作成、会員数だけ増やして、検索結果の量は多いが、粒ぞろいはない WordPress 生態系を多く経験したが、thewordcrackerは本当にあまりにも便利な、役立つ情報をたくさん得ていきます。

    著者様は、韓国の WordPressを発展させるブンジュン、
    私が知っている最高の著者です。

    ありがとうございます。

    応答
    • こんにちは、fast様。

      不足している点が多い良く見ていただきありがとうございます。

      今後もより有益な WordPress 関連情報をあげるよう努力します。

      コロナのため全世界がパニック状態ですね。 健康気をつけて楽しい一日送ってください。

      応答