删除帖子时从定制表中删除数据

时间:2013-05-06 作者:Shakil

删除帖子时,我想从自定义表中删除帖子id。我试过这种方法,什么也没发生。请帮忙。

add_action(\'delete_post\', \'delete_data\');

function delete_data($post_id) {
   global $wpdb;
   $table_name = $wpdb->prefix . \'post_order\';
   if ($wpdb->get_var($wpdb->prepare("SELECT `id` FROM $table_name WHERE `pid` = %d", $post_id))) {
       $wpdb->query($wpdb->prepare("DELETE FROM $table_name WHERE `pid` = %d", $post_id));
   }
} 

1 个回复
SO网友:s_ha_dum

delete_post 永久删除帖子时激发,而丢弃帖子时激发。我不知道这是否相关,但请记住这一点。这是这个问题中唯一真正针对WordPress的部分。其余的都是糟糕的PHP。

Variables do not expand inside single quotes. 您正在向数据库发送一个查询

SELECT `id` FROM $table_name WHERE `pid` = XxX
你想要的是

$wpdb->prepare(\'SELECT `id` FROM \'.$table_name.\' WHERE `pid` = %d\', $post_id)

$wpdb->prepare("SELECT `id` FROM {$table_name} WHERE `pid` = %d", $post_id)
要在丢弃帖子时运行该函数,您可能需要status transition hooks. 但有一句话或警告:如果你从你的表格中删除了“垃圾”,你就不能撤销它。“恢复”功能将无法在这些帖子上正常工作。

结束

相关推荐

Next/Prev posts on same page

WordPress用户您好,我在建立wordpress网站时遇到了一个问题,我不知道该怎么办。目前,我正在“新闻”页面上显示2篇来自“新闻”类别的帖子。在这个页面的底部,我想要一个上一页/下一页按钮,显示同一类别的下一篇或前两篇文章。所以我在想我该怎么做。所以我找到了这个代码:previous_posts_link(\'Newer Entries »\') next_posts_link(\'« Older Entries\'); 这显示了一个我所期望的链接。但两个链接都不起作用(页面重