是否使用wp-cli批量删除自定义POST类型及其附件?

时间:2018-07-09 作者:Brooke

我有一个名为“会议”的自定义帖子类型,我想批量删除所有帖子及其所有附件图像。。。

这可以通过wp cli完成吗?

非常感谢。

2 个回复
SO网友:davemac

要做到这一点,您可以使用wp post list 并将输出导入wp post meta delete 使用xargs.

下面是一个示例命令,用于删除meetings 岗位类型:

wp post list --post_type= meetings --fields=ID --format=csv | xargs -I % wp post meta delete % _thumbnail_id

您可以使用wp post meta list 获取要删除的字段的名称,并相应地修改上面的命令。

SO网友:rudtek

我知道您询问了如何通过wpCLI执行此操作,但您可以运行函数来执行此操作:

add_action( \'before_delete_post\', \'delete_all_attached_media\' );

function delete_all_attached_media( $post_id ) {

  if( get_post_type($post_id) == "meetings" ) {
    $attachments = get_attached_media( \'\', $post_id );

    foreach ($attachments as $attachment) {
      wp_delete_attachment( $attachment->ID, \'true\' );
    }
  }

}
将此函数添加到函数中。php,然后在后端选择所有;“会议”;cpts和删除。清除垃圾后,此功能将启动并删除与被删除帖子相关的所有附件。

结束