WordPress使用wp_DELETE_POST函数删除挂钩?

时间:2012-01-08 作者:shammer

我有这个动作/钩子:

add_action( \'before_delete_post\', \'my_delete_function\' );
 function my_delete_function($post_id) { 
    global $wpdb;
    $achievement = get_the_category($post_id); 
    $h = $achievement[0]->cat_ID; 
    $s = \'\'.str_replace(\'"\', \'\', $h);
   if ( $s == 6 || $s == 5){
        $wpdb->query("DELETE FROM wp_votes WHERE post = ".$post_id) or die(mysql_error());

    }
}
当我从管理员那里删除帖子时,上面的方法非常有效。但是,调用wp\\u delete\\u post()时,该操作不起作用。

如何使操作与删除功能一起工作?

2 个回复
SO网友:TheDeadMedic

<罢工>wp_delete_post() always 触发器before_delete_post - 问题一定是你在有条件地挂接你的函数(也就是说,不是一直挂接)

before_delete_post only 如果您确实要永久删除帖子,而不仅仅是将其丢弃,则会触发此操作。

如果你也需要倾听垃圾,请使用wp_trash_post.

SO网友:Abir Pathak

用法wp\\u delete\\u post:

wp_delete_post($postid, $force_delete = false)
“before\\u delete\\u post”挂钩仅在强制删除帖子时调用。而不是当它被扔进垃圾桶的时候。默认情况下

wp_delete_post($postid)
将邮件发送到垃圾箱。因为默认的$force\\u delete标志为false。因此,您必须通过将标志设置为true来强制删除它:

wp_delete_post( $postid, true);

结束

相关推荐

使用PRE_GET_POSTS筛选器在所有元值上搜索多个字符串

使用pre\\u get\\u posts筛选器在所有meta\\u值上搜索给定字符串:$query->set(\'meta_value\', \'first string\'); 调试:AND ( (CAST(wp_postmeta.meta_value AS CHAR) = \'first string\') ) 工作正常:)但如何在所有meta\\u值上搜索字符串数组?例如我需要这样的东西:$query->set(\'meta_value\', array(\'fir