Intereting Posts
Если одна таксономия содержит тот же термин, что и другой, то отображается сообщение Как сделать размер изображения выбранным по умолчанию при загрузке мультимедиа – WP v3.5 Принуждение WP для встраивания видео при использовании короткого кода Какой крюк я могу использовать для изменения пользовательских данных после того, как он будет отображаться на странице? Как я могу вызвать функцию PHP внутри жесткокодированного кода? Отношение родителя и ребенка для пользовательских типов сообщений В каком каталоге я могу найти HTML-файл моих страниц WordPress? Пользовательская загрузка страницы по wp_query Как включить мой собственный css в сообщение снятие кода WordPress по умолчанию из страницы Как узнать, какой из них является основным? Проблемы с установкой Novice WordPress Значок эскиза и категории Как создавать коллекции, которые редактируются администратором? Отслеживание результатов пользовательских результатов поиска

Поиск и замена текста во всех сообщениях

Я давно использовал ZD Video Plugin для WP, и теперь, с момента моего перехода на WP 3.0.2, он больше не работает. Чтобы встроить видео YouTube с помощью плагина, я бы просто написал

[Zdvideo] URL-оф-YouTube-видео [/ zdvideo]

Теперь мне нужно вернуться к простому встраиванию YouTube. Как написать запрос MySQL, который ищет [zdvideo]*[zdvideo] и заменяет его на * ?

Как насчет этих двух запросов?

 UPDATE wp_posts SET post_content = REPLACE(post_content, '[zdvideo]', ''); UPDATE wp_posts SET post_content = REPLACE(post_content, '[/zdvideo]', ''); 

Лучше всего я знаю, что MySQL не имеет много функций замены regexp – не говоря уже о его очень неуклюжем синтаксисе regexp. Так что это проще всего сделать на уровне php. Начните с получения всех сообщений с коротким кодом:

 $posts = $wpdb->get_results(" SELECT ID, post_content FROM $wpdb->posts WHERE post_content LIKE '%[zdvideo]%' "); 

И затем проведите через результат:

 foreach ($posts as $post) { $post->post_content = preg_replace( "/\\[zdvideo\\](.+?)\\[\\/zdvideo\\]/", "$1", # $1 holds the url... format as needed $post->post_content); # Be sure to verify on a few posts before actually saving... # var_dump($post->post_content); $wpdb->query(" UPDATE $wdpb->posts SET post_content = '" . $wpdb->escape($post->post_content) . "' WHERE ID = " . intval($post->ID) ); } 

или использовать плагин Search & Replace , упрощает использование sql внутри WP; используйте аналогичный оператор и дайте вам gui для поиска / замены строк в содержимом и других таблицах.