投稿とそれに紐づく画像を自動削除する
-
実装したいのは、「一定期間経過したらカスタム投稿とそれに紐づく画像を自動削除する」というものです。
紐づく画像の削除はこちらのサイト、一定期間経過したら投稿を自動削除するのはこちらのサイトを参考にさせて頂きました。
コードは以下の通りです。
投稿に紐づく画像を削除する処理
function nxw_delete_post_attachment( $post_id ) { $args = array( 'numberposts' => -1, 'post_parent' => $post_id, 'post_type' => 'attachment', 'post_status' => 'any', 'post_mime_type' => 'image' ); $attachments = get_children( $args ); foreach( $attachments as $attachment ) { wp_delete_attachment( $attachment->ID, true ); } } add_action( 'before_delete_post', 'nxw_delete_post_attachment' );
一定期間経過したら投稿(カスタム投稿タイプ“news”)を自動削除する処理
function my_auto_delete($pid) { if($parent_id = wp_is_post_revision( $pid )) { $pid = $parent_id; } $timestamp = wp_next_scheduled('my_new_event', array($pid)); if($timestamp != false) { wp_clear_scheduled_hook( 'my_new_event', array($pid) ); } $time = get_post_time('U', true, $pid); $expire = strtotime('+7 day', $time); wp_schedule_single_event($expire, 'my_new_event', array($pid)); } add_action('save_post','my_auto_delete'); function my_delete_post($pid) { $allposts = get_posts( array('post_type'=> 'news', 'numberposts' => -1)); foreach ( $allposts as $eachpost ) { wp_delete_post( $eachpost->ID, true); } } add_action('my_new_event', 'my_delete_post');
上記処理をすると、新規で投稿画面に入った瞬間に以前投稿した投稿と画像が全て削除されてしまいます。
ですので、“投稿に紐づく画像を削除する処理”は問題ないようですが、“一定期間経過したらカスタム投稿を自動削除する処理”の方がうまく動作しません。どう修正したら宜しいのでしょうか。
アドバイス宜しくお願い致します。
3件の返信を表示中 - 1 - 3件目 (全3件中)
3件の返信を表示中 - 1 - 3件目 (全3件中)
- トピック「投稿とそれに紐づく画像を自動削除する」には新たに返信することはできません。