Встроенный в Wordpress экспорт ущерблен как Квазимодо после аварии. И так же как и Квазимодо, ущербость эта врожденная, протекает с самого детства, и мы в силу воспитания стараемся не обращать на это внимание. До тех пор пока не приспичит перенести несколько сот записей из одной категории в другую.
Открываем админку нашего сайта, переходим “инструменты –> Экспорт”

Чем мотивировались разработчики привязывая экспорт к имени, для меня загадка, но и ляд с ним. Будем исправлять.
Открываем 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>
В результате получаем вот такую внушающую оптимизм, но пока еще не функционирающую картинку:

Продолжаем рыть землю. Открываем …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).")");
}
На выходе получаем XML файл, который можно импортировать встроенными средствами Wordpress.
- Также интересно будет почитать про:
- Если в контенте много “жирного” текста
- Порой дизайнеры создают вот такие штуки:Создавать для каждого типа “жирности” отдельный класс не кажется мне кошерным вариантом. Во-первых, не изящно. Во-вторых, тексты заносят в основном люди далекие от веба, и...
- Контейнер для float – блоков
- "Зафлоаченные" элементы изымаются из родительского блока, и "папа" "схлоповается". Чтобы этого не происходило, я использую следующий стиль :Туда
Здесь
Сюдаul{
overflow:hidden; /*Лекарство*/
_height:1%; /*оно же для IE*/
...
- Как вывести в rss мета-данные
- Приспичело мне на одном проекте сделать так, чтобы выводились в rss картинки, которые прилагались к посту. Исторически сложилось, что ссылка на эту картинку хранится в метаданных.Задача решилась так. Ищем файл...
- Плагин Add code to RSS
- Я уже делился (http://pokrovskii.com/kak-vyvesti-v-rss-meta-dannye/) способом которым можно расширить вашу RSS ленту. Его недостаток заключался в том, что после каждого аптейта необходимо было проделвать процедуру заново. Тогда я написал плагин (спасибо...
- Как получить доступ к DOM iframe через jQuery
- Iframe
Содержимое iframe
Абракабабра
jQuery
$('#i').contents().find('#j').html();
...
Комментарии