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

时间:2014-06-30 作者:CrazyWu

我正在尝试创建一个插件,该插件将通过管理面板(wp admin/edit tags.php)从数据库中删除有关删除自定义帖子(sp\\U场馆)的图片和其他信息

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

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)
但看起来通过管理面板删除的事件不一样。

我应该用什么来让它工作?非常感谢。

2 个回复
最合适的回答,由SO网友:CrazyWu 整理而成

通过在管理面板中添加我自己的js来定制点击删除按钮,解决了这个问题。

SO网友:Adam

我想看看http://codex.wordpress.org/Plugin_API/Action_Reference/delete_post 正如这个例子所示,在某种情况下,你似乎正在做你想做的事情。在我看来,您的实际代码与WordPress的连接很好,但我链接到的页面中需要记住的一点是,此事件是通过从数据库中删除帖子触发的,而不是直接通过单击管理面板中的按钮来丢弃帖子触发的。

是的,请使用delete\\u post()进行测试,然后返回给我。

结束

相关推荐

将php函数添加到.js文件中(用于tinyMCE按钮)

我正在为wp WYSIWYG编辑器创建一个tinyMCE按钮。基本上,当用户单击按钮时,会弹出一个模式表单,他们必须输入几个字段。但是,其中一个字段需要是列出每个帖子类别的列表框,用户将选择一个。其基本语法如下:{ type: \'listbox\', name: \'sds-category\', label: \'Category\', \'values\': [ {text: \'Name Of Cat\', value: \'Cat ID\'}