我设置了一个插件,它添加了一个自定义帖子类型,然后在激活时引入了一堆带有 wp_insert_post 的虚拟内容,如下所示:
register_activation_hook( __FILE__, array( $this, 'activate' ) );
public function activate( $network_wide ) {
include 'dummycontent.php';
foreach ($add_posts_array as $post){
wp_insert_post( $post );
};
} // end activate
我想在插件停用时删除此内容,因此我设置了此功能:
register_deactivation_hook( __FILE__, array( $this, 'deactivate' ) );
public function deactivate( $network_wide ) {
include 'dummycontent.php';
foreach($remove_posts_array as $array){
$page_name = $array["post_title"];
global $wpdb;
$page_name_id = $wpdb->get_results("SELECT ID FROM " . $wpdb->base_prefix . "posts WHERE post_title = '". $page_name ."'");
foreach($page_name_id as $page_name_id){
$page_name_id = $page_name_id->ID;
wp_delete_post( $page_name_id, true );
};
};
} // end deactivate
它工作得很好。除了因为自定义帖子类型是使用运行这两个函数的相同插件创建的,帖子类型在帖子本身可以通过之前被删除wp_delete_post
。当我在没有自定义帖子类型的情况下测试这些功能时,帖子会在激活时添加并在停用时删除。所以我知道问题出在帖子类型上。有谁知道如何解决这个问题?