私のクライアントは不動産リストにWordPressを使用しています。現在、彼女はリストをクリーンアップしておらず、ディスク容量が不足しています。削除されたページ/投稿に関連付けられた画像をWordPressに削除させるために可能なWordPress構成。今のところ、私は写真をメモしてからメディアライブラリに入る必要があります。
1603 次
2 に答える
1
すでに削除された投稿の後に「クリーンアップ」するために、これをスタンドアロンファイルに入れることもできます
<?php
/* Short and sweet */
define('WP_USE_THEMES', false);
require('./wp-blog-header.php');
$unattachedmediaargs = array(
'post_type' => 'attachment',
'numberposts' => -1,
'post_status' => null,
'post_parent' => 0
);
$unattachedmedia = get_posts($unattachedmediaargs);
if ($unattachedmedia) {
foreach ($unattachedmedia as $unattached) {
wp_delete_attachment( $unattached->ID, true );
}
}
?>
于 2012-10-21T19:35:48.313 に答える
1
これでうまくいくはずです...
function o99_delete_post_children($post_id) {
global $wpdb;
$child_atts = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_parent = $post_id AND post_type = 'attachment'");
foreach ( $child_atts as $id )
wp_delete_attachment($id);
}
add_action('before_delete_post', ' o99_delete_post_children');
add_action('trash_post', 'o99_delete_post_children')
免責事項:これを試したことはないので、最初に非本番環境でテストしてください-または自己責任で使用してください...
編集I:コメントを寄せてくれた@DaleSattlerに感謝します
編集II:管理者リストの投稿で「ゴミ箱に移動」アクションもサポートするために追加されましadd_action('trash_post', 'o99_delete_post_children');
た(1つずつ削除するのではありません)
于 2012-10-21T12:46:34.407 に答える