Задать вопрос
@Mixa

Как перезаписать старые шорткоды в wordpress?

В наследие от старого плагина во многих постах остались шорткоды типа

[download#395#nohits]

Хочу сделать их рабочими, но без плагина.

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

"[download"

и заканчивается

"]"

брать праметр между двумя # (все остальное мне не нужно)

и перезаписывать весь шорткод на нужный вывод. Думаю, я могу и сам что-нибудь сварганить но, боюсь, мое решение будет на пару страниц кода. Уверен, тут есть краткое и элегантное решение.
  • Вопрос задан
  • 168 просмотров
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
rpsv
@rpsv
делай либо хорошо, либо никак
1. В базе пробежаться по всем постам "wp_posts"
2. Регуляркой в контенте страницы найти нужные строки.

Регулярное выражение такое:
/\[download(.*?)\]/gs
Ну а из базы выгрузить записи можно стандартной wp_posts.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ommunist
Делаю и поддерживаю мультиязычные сайты
Если речь о конкретно этом шорткоде, переопределите его в functions.php
A лишние атрибуты в таблице перепишите вот как советуют уже UPDATE wp_posts SET post_content = REPLACE(post_content, ‘[old_shortcode]’, ‘[new_shortcode]’);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы