当发布属性更改时,如何删除与自定义字段类型关联的附件?

时间:2016-11-29 作者:David Matos

我有一个WordPress网站,上面有一个名为“交易类型”的自定义字段。该字段可以是“卖出”或“卖出”。

“销售”汽车有一个名为“主图片”的自定义字段,其中附有一张图片,另一个名为“图库”,其中附有多张汽车照片。

当站点管理员将“正在出售”的汽车更改为“已出售”时,我需要删除所有与库相关的附件,以节省空间(但我必须保留添加在“主图片”字段中的附件)。

是否有任何钩子可以检测到自定义字段“交易类型”已更改为“出售”,并触发删除与“gallery”自定义字段关联的所有附件?

其他信息:我使用Advanced Custom Fields Pro版本创建自定义字段。

1 个回复
最合适的回答,由SO网友:Dan. 整理而成

您可以使用save_post

add_action( \'save_post\', \'mytheme_my_post_just_updated\' );

function mytheme_my_post_just_updated($post_id){

    $deal_type = get_field($post_id, \'deal_type\');

    if($deal_type == \'sold\'){

       $gallery = get_field($post_id, \'gallery\');// This bit and the next few lines will depend on how you\'ve set up the custom field. 

        // Fast forward a few lines...
        foreach($images as $image){ // I\'m assuming that $images is an array of attachment_ids, but will depend on how you\'ve used ACF to create the custom field
            wp_delete_attachment($image, true); // args are attachment_id and whether or not to bypass trash.
        }

    }

}
将上述代码放入主题的functions.php.

更多关于wp_delete_attachment() - https://codex.wordpress.org/Function_Reference/wp_delete_attachment

相关推荐

Column Images Showing Gaps

我正在使用带有Avada主题的Wordpress。在页面顶部,我有一个fusion滑块。下面我将设置一个包含2列的容器。我为每一列插入了一幅图像。我无法解决如何消除图像左右两侧的间隙(我需要它们转到屏幕边缘)以及融合滑块与下方两幅图像之间的间隙。谢谢