Поддержка Проблемы и решения SQL-запрос(ы), массовое редактирование

  • Вопрос по работе с базой данных. Массовое редактирование.
    Есть много постов в которых статьи заключены в шорткод пример:
    [collapse]
    Здесь контент
    [/bc_collapse]

    Возможно-ли через SQL-запрос(ы), или иным способом МАССОВО удалить контент заключенный в выше упомянутом шорткоде.
    То-есть по всех публикациях и страницах удалить?

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • хз, с regexp не дружу, но такое вполне возможно в запросе.

    хотя лично я бы не стал напрягаться и добавил бы код:

    
    add_shortcode( 'collapse', '__return_false' );
    

    чтобы шорткод ничего не возвращал.

    Возможно-ли через SQL-запрос(ы), или иным способом МАССОВО удалить контент заключенный в выше упомянутом шорткоде.

    https://wordpress.org/plugins/search-regex/

    https://wordpress.org/plugins/search-regex/

    Как-бы понятно о функции плагина, не понял как плагин будет все удалять после отметки [collapse] и до отметки [/bc_collapse] ?

    • Ответ изменён 4 года, 10 месяцев назад пользователем Budun.

    не понял как плагин будет все удалять после отметки [collapse] и до отметки [/bc_collapse] ?

    Используя full power of PHP’s regular expressions.

    Если что маны тут PHP: Регулярные выражения PCRE

    как плагин будет все удалять после отметки [collapse] и до отметки [/bc_collapse] ?

    1. Выбрать ГДЕ (в контенте).
    2. Прописать ЧТО (простая регулярка)
    3. Запустить.
    Он вначале пройдёт в демо-режиме — покажет какие изменения будут произведены, а только на след шаге (если устроит) начнёт менять в базе.

    Но всё равно необходимость создания бекапов базы это не отменяет.

    • Ответ изменён 4 года, 10 месяцев назад пользователем SeVlad.

    По поводу плагина.
    Или я туплю, или SeVlad не понял что мне нужно. Так как плагин удаляет-меняет строки.
    А мне нужно удалить текст после [collapse] и до [/bc_collapse]
    А сам шорткод [collapse] [/bc_collapse] должен остаться.

    Или я туплю

    …или до сих пор не знаете, что такое регулярное выражение 😉

    [collapse](.*?)[/bc_collapse]

    или SeVlad не понял что мне нужно

    Или там, где Вы писали не прочитали написанное:

    Я не отвечаю на:

    3. просьбы проконсультировать приватно и бесплатно. Для этого есть форум.

    Ок.
    Найти:
    [collapse](.*?)[/bc_collapse]
    Заменить на
    [collapse][/bc_collapse]
    и дальше кнопка «поиск»

    Результат нулевой. Не находит ни чего.

    • Ответ изменён 4 года, 9 месяцев назад пользователем Budun.
    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    1. В регулярном выражении нужно экранировать квадратные скобки: #\[collapse\](.*?)\[/bc_collapse\]#, в начале и в конце добавить символ разделителя (например, #) и не забыть отметить галочки «Regex» и «dot-all», тогда результаты находятся.
    2. Открывающий и закрывающий тег шорткода не совпадают — это так и задумано?

    СПАСИБО БОЛЬШОЕ !!! Sergey Biryukov за ИСЧЕРПЫВАЮЩУЮ подсказку.
    Все получилось.
    В благодарность, если у Вас есть в этом необходимость, могу написать уникальную статью для вашего сайта. Тематика почти вся.

    На радостях возник еще вопрос.
    Реально-ли тем-же плпгином, делать замену в постах, для определенных рубрик?

    • Ответ изменён 4 года, 9 месяцев назад пользователем Budun.
Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Тема «SQL-запрос(ы), массовое редактирование» закрыта для новых ответов.