[WordPress]文と共に接続されたメディアファイルを削除する方法

2のコメント
  • Naver ブログを共有する
  • Naver バンドに共有する
  • Facebook 共有する
  • Twitter 共有する
  • 카카오스토리공유하기

WordPress 文(ポスト)を削除すると、文だけ削除され、文に含まれているメディアファイルは削除されません。 文を削除した場合、メディアファイルを検索して削除する必要があります。 記事にリンクされたメディアファイルを簡単に削除するには、文を削除する前に書かれた編集モードに入り、 "メディアを追加"ボタンを押して"この記事にアップロードされたもの"を選択して、記事にアップロードされた画像ファイルを表示することができます。これにより、簡単に削除が可能です。

WordPress - 現在の文にアップロードされたメディアファイルを表示する

この方法は、面倒です。 (ただし、面倒でも、この方法をお勧めします。)もし文の削除時に接続された画像を自動的に削除することを希望する場合は、次のコードを使用することができます。

function delete_post_media( $post_id ) {

$attachments = get_posts( array(
'post_type'      => 'attachment',
'posts_per_page' => -1,
'post_status'    => 'any',
'post_parent'    => $post_id
) );

foreach ( $attachments as $attachment ) {
if ( false === wp_delete_attachment( $attachment->ID ) ) {
// Log failure to delete attachment. (첨부파일 삭제 실패 시 로그를 기록함)
}
}
}
add_action('before_delete_post', 'delete_post_media');
// Source: stackexchange

上記のコードをテーマの関数ファイル(のfunctions.php)に追加すると、必要に応じて動作します。 記事にリンクされたメディアを削除するときには注意が必要です。 もし画像ファイルが複数の文に使用されている場合は問題が発生します。 したがって、上記のコードを使用するときは、この点を念頭におくのがよいようです。

上記のコードを少し変更して、次のように使用することができます。

function delete_post_media( $post_id ) {

if(!isset($post_id)) return; // 이 라인을 삭제하면 상위 항목이 있는 모든 첨부파일이 영구적으로 삭제됩니다!
elseif($post_id == 0) return; // Will die in case you have 0 set. there's no page id called 0 :) -- post id가 0인 경우 종료.
elseif(is_array($post_id)) return; // Will die in case you place there an array of pages - 페이지 배열인 경우 종료?

else {

$attachments = get_posts( array(
'post_type'      => 'attachment',
'posts_per_page' => -1,
'post_status'    => 'any',
'post_parent'    => $post_id
) );

foreach ( $attachments as $attachment ) {
if ( false === wp_delete_attachment( $attachment->ID ) ) {
// Log failure to delete attachment - 첨부 파일 삭제 실패 시 로그 기록
}
}
}
}
// Source: WordPress Support Forum

このコードは、特定のpost_idの文を指定して、削除しようとするときに使用できる関数です。 例えば、

delete_post_media( 111 );

上記の関数を実行すると、この上位ID「111」に添付されたすべてのメディアが削除されます。



2のコメント

コメント

  1. こんにちは。 質問します。 メディアライブラリ内のファイルは、削除した場合のトラブル? 写真、映像など...投稿にあった写真、映像がない表示ですか?
    今、この質問する前にメディアライブラリにあるXNUMXつの画像を削除した記事の写真はそのままあり、何の変化がなかったのに。問題ないですか?

    応答
    • こんにちは、イドンサム様。

      ゴミ箱を空にましたか?

      https://www.screencast.com/t/U4Z9rvOI

      ごみ箱を外しても、画像が表示される場合、キャッシュにまだ残っていて発生する問題である。

      応答