如何最好地删除孤立wp_postmeta

时间:2013-06-18 作者:mantis

我正在进行一些相当复杂的查询,涉及来自自定义帖子类型的元数据。不幸的是,如果任何帖子被删除,元数据就会保持不变,这让我在计算的时候更加复杂。

我想知道在帖子被删除的情况下,如何最好地删除孤立元数据。

我应该包括一个通过$wpdb从数据库中删除它们的函数吗?

我发现了一个SQL查询,它可以做到这一点,但我不知道如何格式化它。

DELETE pm
FROM wp_postmeta pm
LEFT JOIN wp_posts wp ON wp.ID = pm.post_id
WHERE wp.ID IS NULL
我在phpmyadmin的数据库备份副本上尝试了它,但没有成功。

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

此代码段足够好,请将其用于$wpdb. 在这种情况下,我将使用:

<?php
add_action( \'before_delete_post\', \'my_func\' );
function my_func( $postid ){

// We check if the global post type isn\'t ours and just return
global $post_type;   
if ( $post_type != \'my_custom_post_type\' ) return;

// My custom stuff for deleting my custom post type here
}
?>

Source

结束

相关推荐

访问前3天帖子的wpdb查询问题

我正试图通过作者id 2获取所有已发布帖子的标题,最近一次是通过最近几天的发布日期。以下是我的疑问:\"SELECT post_title FROM $wpdb->posts WHERE post_status = \'publish\' AND post_author = 2 ORDER BY post_date DESC LIMIT 3 \" 这将显示最近的3篇帖子,而不是最近3天的帖子。如何正确查询?