我正在尝试编写一个简单的插件,其中包括创建一个定制的post类型。我一直在到处搜索,但我真的不知道如何编写卸载函数来删除自定义post类型及其从db中的所有条目。
我在WordPress的法典上找到了这个,但我不知道该怎么处理它。羞耻
if ( !defined( 'WP_UNINSTALL_PLUGIN' ) )
exit();
$option_name = 'plugin_option_name';
delete_option( $option_name );
// For site options in multisite
delete_site_option( $option_name );
//drop a custom db table
global $wpdb;
$wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}mytable" );有人能帮忙吗?
提前感谢
这是对的吗?
if ( !defined( 'WP_UNINSTALL_PLUGIN' ) )
exit();
global $wpdb;
$posts_table = $wpdb->posts;
$query = "
DELETE FROM wp_posts
WHERE post_type = 'messages'
";
$wpdb->query($query);发布于 2014-08-09 03:29:37
WP代码页hook有两个重要的信息,其中只有一个你在你的问题。你确实需要确保你注册了钩子。
另外,如果您想删除所有定制的post数据(无论是在卸载时还是在另一个人的评论中,有一个单独的按钮来删除数据,就像许多插件一样),您也需要确保删除postmeta记录。
global $wpdb;
$cptName = 'messages';
$tablePostMeta = $wpdb->prefix . 'postmeta';
$tablePosts = $wpdb->prefix . 'posts';
$postMetaDeleteQuery = "DELETE FROM $tablePostMeta".
" WHERE post_id IN".
" (SELECT id FROM $tablePosts WHERE post_type='$cptName'";
$postDeleteQuery = "DELETE FROM $tablePosts WHERE post_type='$cptName'";
$wpdb->query($postMetaDeleteQuery);
$wpdb->query($postDeleteQuery);https://stackoverflow.com/questions/25198700
复制相似问题