Сегодня знакомый спросил, - "как можно объединить статьи из двух категорий в одну". На что, понимая всю глубину вопроса, я ему шутя ответил, - "Перенести каждую статью в другую категорию".
Кто не понял - речь шла о большом количестве статей. Не долго думая написал вот такую функцию, которая перемещает все статьи из одной категории в другую (откуда и куда есно мы выбираем сами):
<?php
function kama_change_cat ($change, $change_to){
global $wpdb;
$sql = "SELECT p.ID, p.post_title
FROM $wpdb->posts p
JOIN $wpdb->term_relationships rel ON ( p.ID = rel.object_id )
WHERE rel.term_taxonomy_id = '$change'";
$results = $wpdb->get_results($sql);
if (!$results) return print "Ошибка! Вернулся пустой запрос.";
echo "<ul>";
foreach($results as $res) { $i++;
$wpdb->query( "UPDATE $wpdb->term_relationships rr SET rr.term_taxonomy_id = '$change_to' WHERE rr.object_id = '{$res->ID}'" );
echo "<li>{$i}. Обновленна запись с ИД: {$res->ID} ({$res->post_title})</li>";
}
echo "</ul>";
}
?>
Вызов функции такой:
<?php kama_change_cat (1, 8); ?>
где вместо 1 и 8 необходимо указать ID категорий: 1 - откуда, 8 - куда, вы хотите перемещать статьи. Перед этим обязательно сделайте дамп (бэкап) Базы Данных! Мало ли что...
Для тех, кто в танке, но нужен такой приемчик
1. Открываем файл шаблона footer.php туда в самый низ подряд вставляем функцию и её вызов. Сохраняем footer.php. Идем на сайт и обновляем любую страницу. После обновления в самом низу (в футере) будет видно, какие записи были перенесены.
2. Опять открываем footer.php и удаляем все, что только что туда было добавлено (функцию и её вызов).
3. Радуемся проделанной работе 
- Предыдущие по меткам
- Предыдущие записи
- 20+ полезных SQL запросов для WordPress ← 14.Сен.2011 // 19
- Функция вывода всех постов по месяцам написания ← 8.Дек.2010 // 14
- Класс WordPress для работы с Базой Данных (wpdb сlass) ← 22.Дек.2010 // 19
- Перелинковка статей (предыдущие записи) ← 19 Апрель 2010 // 60
- Подсветка результатов поиска, без использования плагинов ← 17 Апрель 2010 // 18
- Обрезка текста и/или замена стандартной функции the_excerpt() ← 11 Апрель 2010 // 70

Привет, по скольку я не очень силён в MySQL, хотелось бы узнать как будет выглядит функция, если я перемещаю в другой каталог только определенные посты а не все посты из категории...
Эта функция будет работать для версии 3.3.1?
Еще момент, Функция перенесет запланированные записи или только опубликованные?
А то блин с прогой одной накасячел
и теперь у меня 100500 одинаковых рубрик.
Точно не могу утверждать, но вроде, все должно работать и под 3.3.1
А не подскажешь, допустим у меня есть 2 рубрики, как мне вывести на отдельной странице только то, что входит и в первую рубрику и во вторую?
Заранее спасибо.
Это читали? http://wp-kama.ru/function/query_posts
Ошибка: 404
Нашёл, прочитал, но всё равно не понял, как это вынести на отдельную страницу.