2014-03-07 68 views
1

我需要一個SQL查詢來delete all posts(自定義文章類型)和所有從特定post author屬於這些職位數據刪除所有帖子和歸屬數據。WordPress的SQL命令從特定作者

我們正在談論超過20,000的帖子,所以我不能使用批量從WP管理方刪除功能。

感謝您的幫助! 問候

+1

發表您的表定義'SHOW CREATE tableName' – Mihai

回答

1

所有首先,我不建議刪除它們這樣(通過直接在管理運行的SQL)作爲postmeta表將具有大約將保留在數據庫中職位的詳細信息。您應該在循環中使用wp_delete_post函數。我會告訴你一點。

其次:您需要確保WP被分配足夠的內存來處理這樣的循環。 codex信息指的是wp-config.php,但在最近版本的wordpress中,它位於安裝的根文件夾中的wp-settings.php中。 http://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP完成刪除帖子後,您可以重新設置限制。

第三:如果您不能在後端的自定義插件中運行此代碼,您可以在前端執行此操作。此功能會做到這一點:

global $wpdb; 
$evil_author = THE_ID_OF_THE_AUTHOR_WHOSE_POSTS_YOU_WANNA_BUZZIATE; 
$them_posts = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE AND post_author = $evil_author" AND post_type = "my_post_type"); // Replace my_post_type by the post type you want 

foreach ($them_posts as $post_die) 
{ 
    wp_delete_post($post_die->ID, true); // Bypasses Trash and deletes all the posts 


} // ************ BE SUPER CAREFUL BECAUSE THIS IS IRREVERSIBLE. So, BACK UP ************** 

NB:注意,該功能也將刪除所有的意見和關於該職位任何其他元關係。