笔记
使用风险自负,它有问题,我遇到过几个它会删除所有附件的实例。 不确定为什么。
删除该页面时是否可以删除与该页面关联的媒体? 我知道在“插入媒体”页面中您可以按“上传到此页面”的图像进行过滤,所以我可以获取这些图像的列表并在删除页面时删除它们吗?
现在我正在尝试挂接到 Delete Post。 现在……它什么都不做,但我想我正在使用它。
function del_post_media($pid) { $query = "DELETE FROM wp_postmeta WHERE ".$pid." IN ( SELECT id FROM wp_posts WHERE post_type="attachment" )"; global $wpdb; if ($wpdb->get_var($wpdb->prepare($query))) { return $wpdb->query($wpdb->prepare($query)); } return true; } add_action('delete_post', 'del_post_media');
这个怎么样? 它改编了 get_posts() 函数参考页上的示例。
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' );
我想你正在寻找这样的东西……?
function delete_associated_media($id) { // check if page if ('page' !== get_post_type($id)) return; $media = get_children(array( 'post_parent' => $id, 'post_type' => 'attachment' )); if (empty($media)) return; foreach ($media as $file) { // pick what you want to do wp_delete_attachment($file->ID); unlink(get_attached_file($file->ID)); } } add_action('before_delete_post', 'delete_associated_media');
原文链接:https://www.wordpresshy.com/329350
© 版权声明
声明📢本站内容均来自互联网,归原创作者所有,如有侵权必删除。
本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。
THE END