Wordpress, Замена сразу во Всех Постах

Категория: Блоговодство, Программы | 24 September 2011, 10:46 |

Случилась у меня надобность у большого проекта на Wordpress произвести изменения сразу во всех постах. Нужно было кое-чего добавить в ссылки сшитые в тело поста.

Для простой замены строки AAA на строку BBB можно воспользоваться плагинами, но это порою слишком громоздко - ставить плагин, настраивать… и всё ради одной строчки. Как по мне, проще сделать SQL запрос через PhpMyAdmin:

update wp123_posts set post_content = replace (post_content,’AAA’,'BBB’);

Наверное это будет самый востребованный кусок кода в статье ))

Помимо простой замены, мне нужно было ещё сделать одну довольно замысловатую хрень :)

Мне нужно было во всех постах вставить slug той категории, к которой относится пост. Огромное спасибо за помощь Ю. Б. (он ведёт Блог о жизни, wordpress и прочей всячне) в создании этого SQL запроса. Сам я уже как только не придумывал как произвести эту замену с подстановкой, но всё упирался в то что банально не хватает знаний. Придумать могу, а что б сделать пришлось бы на неделю садится за всякие мануалы и всё тестить, тестить… В результате остановились на SQL запросе со вложенным селектом, что самое разумное и компактное.

Кто немного разбирается в SQL может проследить эволюцию 1-го запроса во второй:

update wp123_posts as post
set post_content = replace (post_content, ‘AAA’, concat(’AAA’,(
select slug from wp123_terms as terms
left join wp123_term_taxonomy as tax on (terms.term_id=tax.term_id)
left join wp123_term_relationships as rel on (tax.term_taxonomy_id=rel.term_taxonomy_id)
where rel.object_id=post.id AND tax.taxonomy=’category’
limit 1
),’BBB’
));

Вот тут, конечно, не хватает подсветки синтаксиса, но и с ней тут без пол-литра не раздерёшься )))  В примере изменены префиксы таблиц (4 шт.) и строки, не завтыкайте, как будете копипастить.

P.S.: Не разжовываю код так как кому надо - и так поймёт, а кто не понимает - “может не надо вам ковырять базу?” ))

Искренне Ваш
Горный Оптимизатор.

2 Коментариев to “Wordpress, Замена сразу во Всех Постах”

  1. Sergey says:

    ты бы открыл возможность коментов записи страше двух недель. А то… Неудобно… Хотел отписаться, а там закрыто… :(

  2. Там 3 мес. стоит, но на всяк случай увеличил - 4 мес.

Поиск
 
Страницы :
Рекламko
Счетчики :