Master-X
Форум | Новости | Статьи
Главная » Форум » Блоги и Социальные сети » 
Тема: Как удалить 30к постов?
цитата
22/07/08 в 17:07
 Iceworld
Всем привет! как быстро удалить 30к постов в блоге на WP? к каждому посту идет картинка желательно и ее тоже. Все посты былы сделаны в течении 2 месяцев.
Еще вопрос как увеличить количество просматриваемых постов в меню manage -> posts с 15 хотя бы до 100, в том же WP?
цитата
22/07/08 в 17:49
 AlexU
Если все посты нужно удалить и есть доступ к phpMyAdmin.
Очищаешь wp_posts(посты) и wp_categories(категории).
цитата
22/07/08 в 18:05
 gleoz
+1 за удалить из мускула
цитата
22/07/08 в 18:17
 AlexU
Iceworld писал:

Еще вопрос как увеличить количество просматриваемых постов в меню manage -> posts с 15 хотя бы до 100, в том же WP?

wp-admin -> edit.php
Код:
$posts_per_page = 15;
цитата
22/07/08 в 18:26
 Skat
+1 за очистеть через phpmyadmin, делов на пару минут от силы
цитата
22/07/08 в 22:28
 cyberxxx
AlexU писал:
Если все посты нужно удалить и есть доступ к phpMyAdmin.
Очищаешь wp_posts(посты) и wp_categories(категории).


gleoz писал:
+1 за удалить из мускула


Skat писал:
+1 за очистеть через phpmyadmin, делов на пару минут от силы

TC, не слушай их, ибо это неправильно. Кроме самих постов, имеется еще и метадата, сохраненная в другой таблице (postmeta), есть камменты, ассоциированные с постом и т.д. Короче, удалять надо ТОЛЬКО через wp_delete_post(), если ты не хочешь оставить в базе тонну шлака. Эта функция удалит как сами посты, так и все, что с ними связано.

Напрямую через мускуль лучше ничего не делать. Просто посмотри на то, как работатет эта функция и ты поймешь, почему удаление из базы постов вручную не есть хорошая идея:

/**
* wp_delete_post() - Deletes a Post
*
* {@internal Missing Long Description}}
*
* @package WordPress
* @subpackage Post
* @since 1.0.0
*
* @param int $postid post ID
* @return mixed {@internal Missing Description}}
*/
function wp_delete_post($postid = 0) {
global $wpdb, $wp_rewrite;

if ( !$post = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->posts WHERE ID = %d", $postid)) )
return $post;

if ( 'attachment' == $post->post_type )
return wp_delete_attachment($postid);

do_action('delete_post', $postid);

/** @todo delete for pluggable post taxonomies too */
wp_delete_object_term_relationships($postid, array('category', 'post_tag'));

$parent_data = array( 'post_parent' => $post->post_parent );
$parent_where = array( 'post_parent' => $postid );

if ( 'page' == $post->post_type) {
// if the page is defined in option page_on_front or post_for_posts,
// adjust the corresponding options
if ( get_option('page_on_front') == $postid ) {
update_option('show_on_front', 'posts');
delete_option('page_on_front');
}
if ( get_option('page_for_posts') == $postid ) {
delete_option('page_for_posts');
}

// Point children of this page to its parent, also clean the cache of affected children
$children_query = $wpdb->prepare("SELECT * FROM $wpdb->posts WHERE post_parent = %d AND post_type='page'", $postid);
$children = $wpdb->get_results($children_query);

$wpdb->update( $wpdb->posts, $parent_data, $parent_where + array( 'post_type' => 'page' ) );
}

// Do raw query. wp_get_post_revisions() is filtered
$revision_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_parent = %d AND post_type = 'revision'", $postid ) );
// Use wp_delete_post (via wp_delete_post_revision) again. Ensures any meta/misplaced data gets cleaned up.
foreach ( $revision_ids as $revision_id )
wp_delete_post_revision( $revision_id );

// Point all attachments to this post up one level
$wpdb->update( $wpdb->posts, $parent_data, $parent_where + array( 'post_type' => 'attachment' ) );

$wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->posts WHERE ID = %d", $postid ));

$wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->comments WHERE comment_post_ID = %d", $postid ));

$wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->postmeta WHERE post_id = %d", $postid ));

if ( 'page' == $post->post_type ) {
clean_page_cache($postid);

foreach ( (array) $children as $child )
clean_page_cache($child->ID);

$wp_rewrite->flush_rules();
} else {
clean_post_cache($postid);
}

do_action('deleted_post', $postid);

return $post;
}
цитата
23/07/08 в 00:43
 andreich
да все проще, очисти всю базу, и делов то
цитата
23/07/08 в 02:28
 SAV
Iceworld писал:
Всем привет! как быстро удалить 30к постов в блоге на WP?

голодными неграми
цитата
24/07/08 в 02:36
 vlad3d
лучше китайцами за рис.
цитата
24/07/08 в 10:41
 unixanet
а вот меня интересует что за блог, у кого есть 30к постов.. в первие такое слышу.. это что, блог Нойа?
цитата
24/07/08 в 13:31
 flashers
unixanet писал:
а вот меня интересует что за блог, у кого есть 30к постов.. в первие такое слышу.. это что, блог Нойа?

А что такого?Просто автонаполнение стоит да и всё...
цитата
31/07/08 в 17:05
 LOVE
AlexU писал:
wp-admin -> edit.php
Код:
$posts_per_page = 15;


в 2.6 нет такой строки в этом файле


Эта страница в полной версии