Помощник
|
Убрать пробелы из таблицы в базе данных wordpress |
sosnovskij
|
Сообщение
#1
|
||
|
|
||
|
|||
fedornabilkin |
13.9.2013, 15:29;
Ответить: fedornabilkin
Сообщение
#2
|
|
UPDATE `table` SET `field` = REPLACE(`field`, ' ', ' '); Так как в мускуле нету поддержки регулярок при замене, то придется выполнять этот запрос до тех пор, пока он не вернет ноль строк. Можно написать на пхп цикл. А еще можно сделать дамп, открыть его в нотпаде и заменить по регулярке. |
|
|
sosnovskij
|
Сообщение
#3
|
|
Лучше поздно, чем никогда Затянулось у меня с этим.
UPDATE `table` SET `field` = REPLACE(`field`, ' ', ' '); table - это название таблицы? В данном случае wp_posts field - это поле? В данном случае post_content Итого конечный запрос будет UPDATE 'wp_posts' SET `post_content` = REPLACE('post_content', ' ', ' '); Верно? -------------------- |
|
|
c0ns0l3 |
12.10.2013, 0:49;
Ответить: c0ns0l3
Сообщение
#4
|
|
Данный вариант уберет "3 пробела" на 1.
Тебе проще добавить хук на the_content который будет уже соответственно убирать пробелы тем же preg_replace, и если были замены обновлять данные в БД. Могу помочь если хочешь Но здесь может стать проблема в том, как ты вообще выводишь контент... Используешь ли ты в теме функцию the_content, как ты ее используешь - в лупе, или нет... бо в данной функции используется хук без данных об ID поста и т.д. С другой стороны, можно написать плагинчик на будущее, который будет перебирать все посты и делать замену регулярными выражениями... |
|
|
c0ns0l3 |
12.10.2013, 2:17;
Ответить: c0ns0l3
Сообщение
#5
|
|
Подумал подумал.. и придумал...
Ситуация такова... в the_content функции, на выходе используется фильтр соответственно the_content... в который уже попадает обработанный контент поста соответственно... и нету упоминаний в аргументах о самом объекте поста... Контент для этой функции генерит get_the_content... в ней да, есть все что нам надо, но разработчики не придумали использование хотя бы одного фильтра в данной функции, кроме обработки "тизера" ... НО если не указан ID или WP_Post в аргументах, то он берет его из глобала.. в который записываются данные во время WP_Loop.. следовательно мы можем просто повесить триггер на тот-же the_content и забирать с глобала объект WP_Post и над ним уже проводить свои грязные махинации Но тут тоже беда получится.. если ты используешь the_content($some_post->post_content) вне лупа, то на пост, получается наш триггер не сработает... Собственно надо еще подумать... |
|
|
fedornabilkin |
15.10.2013, 10:08;
Ответить: fedornabilkin
Сообщение
#6
|
|
Данный вариант уберет "3 пробела" на 1. Если через запрос к бд, то надо именно заменять два пробела на один. Если было 7 пробелов, сделали запрос - получилось 5 + (2 заменили на 1) = 6. Итого с каждым проходом и выполнением запроса убирается один лишний пробел до тех пор, пока не останется один пробел. Мне кажется меньше мороки |
|
|
sosnovskij
|
Сообщение
#7
|
|
[member=c0ns0l3], мне в принципе 1 раз это нужно сделать и все, поэтому предпочтительнее вариант попроще
[member=fedornabilkin], В окне sql запроса выполнил это UPDATE 'wp_posts' SET 'post_content' = REPLACE('post_content', ' ', ' ') Вылезла ошибка #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''wp_posts' SET 'post_content' = REPLACE('post_content', ' ', ' ')' at line 1
-------------------- |
|
|
matroskin8 |
15.10.2013, 16:00;
Ответить: matroskin8
Сообщение
#8
|
|
В окне sql запроса выполнил это UPDATE 'wp_posts' SET 'post_content' = REPLACE('post_content', ' ', ' ') Вылезла ошибка... Попробуйте заменить одинарные кавычки - ', которыми обрамлены имена поля и таблицы, на обратные кавычки - `: UPDATE `wp_posts`
SET `post_content` = REPLACE(`post_content`, ' ', ' ') |
|
|
sosnovskij
|
Сообщение
#9
|
|
[member=matroskin8], поменял на обратные кавычки. Процесс пошел, но завис, а сайт стал выдавать "error establishing a database connection". Перезагрузил сервер. Посты, в которых были двойные пробелы заменились полностью на текст "post_content". Сейчас восстановил бэкап БД.
-------------------- |
|
|
c0ns0l3 |
15.10.2013, 20:35;
Ответить: c0ns0l3
Сообщение
#10
|
|
|
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Продам базу сайтов Wordpress в 16 миллионов доменов! Свежая сборка. | 18 | Boymaster | 11035 | Сегодня, 12:04 автор: Omaxis |
|
Интеграция спортивных данных API. Коэффициенты БК, Live результаты | 15 | yaroslav89 | 6842 | 8.4.2024, 17:17 автор: spoyer_ru |
|
Нужен кодер, чтобы пофиксить ошибку Wordpress после переноса сайта | 0 | Alex-777 | 854 | 7.4.2024, 18:05 автор: Alex-777 |
|
Безанкорный прогон по базе 1600 000 сайтов из DMOZ | 44 | aleggator | 13748 | 10.3.2024, 18:29 автор: kuprum |
|
Перенос сайта на CMS Wordpress | 8 | freeax | 4956 | 10.3.2024, 14:58 автор: freeax |
Текстовая версия | Сейчас: 19.4.2024, 17:24 |