Як експортувати статті з окремої категорії (ділюсь досвідом)

Avatar

Від momoti 25-07-2010 11:55:49

Guest

По дефолту Вордпресс дозволяє екпортувати статті за автором (досить дивно, це більше підходить для форумних двигунів). У мене виникла потреба перенести ряд статтей з одного ресурсу на інший. Оскільки на батьківському ресурсі oko.if.ua більше 5 тисяч статтей варіант "пернести все і вбити непотрібне" відпав зразу. Після консультацій з друзями мені переслали код, а після деякої правки він навіть запрацював! smile.gifОтож для внесення в адмінку можливості імпорту статтей за категорїєю вам необхідно покопатись на сервері.1. Знаходимо wp-admin/export.php і змінюємоif ( isset( $_GET['download'] ) ) {   export_wp( $_GET['author'] );   die();}наif ( isset( $_GET['download'] ) ) {   export_wp( $_GET['category'] );   die();}в тому ж файлі нижче змінюємо<table class="form-table"><tr><th><label for="author"><?php _e('Restrict Author'); ?></label></th><td><select name="author" id="author"><option value="all" selected="selected"><?php _e('All Authors'); ?></option><?php$authors = $wpdb->get_col( "SELECT post_author FROM $wpdb->posts GROUP BY post_author" );foreach ( $authors as $id ) {$o = get_userdata( $id );echo "<option value='$o->ID'>$o->display_name</option>";}?></select></td></tr></table>на<table class="form-table"><tr><th><label for="category"><?php _e('Виберіть категорію'); ?></label></th><td><select name="category" id="category"><option value="all" selected="selected"><?php _e('All Categories'); ?></option><?php$categories = (array) get_categories('get=all');foreach ( $categories as $c ) {echo "<option value='$c->term_taxonomy_id'>$c->cat_name</option>";}?></select></td></tr></table>отож в адмінці з'являється опція вибору категорії при екпорті ,але поки що вона не працює ;)2. Відкриваєм wp-admin/includes/export.php і змінюємоfunction export_wp($author='') {наfunction export_wp($cat='') {в томуж файлі нижче знаходимо if ( $author and $author != 'all' ) {$author_id = (int) $author;$where = $wpdb->prepare(" WHERE post_author = %d ", $author_id);}і змінюємо на if ( $cat and $cat != 'all' ) {$cat_id = $cat;$ids = $wpdb->get_col("SELECT object_id FROM $wpdb->term_relationships WHERE term_taxonomy_id=$cat");$where = $wpdb->prepare(" WHERE ID IN(".join(',',$ids).")");} Вуаля! Можна імпортувати статті по категоріях +вирішує поширену проблему з обмеженням розміру на імпорт БД (у мене стояло 8 Мб). Тепер велику БД можна імпортувати частинами по категоріях з адмінки без шаманських танців на серваку.Сподіваюсь інфа комусь згодиться wink.gif

Avatar

Від AzzePis 26-07-2010 10:55:05

Administrator · 1,001 повідомлень

Дякую за цікавий код. Від себе додам, що я користувався для цієї задачі плагіном Advanced Export for WordPress & WordPress MU


Український хостинг для WordPress | Шаблони та плагіни для WordPress українською
Тут можна купити домен за найкращою ціною