如何通过管理界面删除自定义帖子后删除WP数据库中的剩余数据

时间:2014-06-30 09:26:41

标签: php wordpress

我尝试创建一个插件,通过管理面板(wp-admin / edit-tags.php)删除自定义帖子(sp_venue),从数据库中删除图片和其他信息

在插件中,我使用它来捕获事件:

add_action( 'delete_post', 'kg_delete_post' );

function kg_delete_post($postId) {

    $post = get_post($postId);

    if ($post->post_type != 'attachment') {
        return false;
    }

    $url = str_replace($dirs['baseurl'],'',$post->guid);
    $urlParts = explode("/",$url);
    $numberOfParts = sizeof($urlParts) - 1;

    $dirs = wp_upload_dir();
    $fileNameParts = explode(".", $urlParts[$numberOfParts]);
    $fileName = str_replace('.' . end($fileNameParts), '', $urlParts[$numberOfParts]) . "-*." . end($fileNameParts);
    $path =$dirs['basedir'] ."/".  $urlParts[$numberOfParts-2] . "/" . $urlParts[$numberOfParts-1] . "/";
    $fullPath = $path  . $urlParts[$numberOfParts];
    $fullPathSearch = $path . $fileName;

    @unlink($fullPath);
    foreach (glob($fullPathSearch) as $filename) {
        @unlink($path . $filename);
    }
}

适用于:

wp_delete_post($Id, true)

但是看起来像通过管理面板删除的事件是不一样的。

我应该用什么来使它有效? 谢谢。

1 个答案:

答案 0 :(得分:0)

通过在管理面板中添加我的js来自定义点击删除按钮。