Домой WordPress WordPress: Вопросы и ответы Задача: добавить слеш к ссылкам внутри постов, там где их нет
4ответ(ов) в теме
Александр
не в сети 2 года
На сайте с 16.01.2019
Участник
Тем 31
Сообщения 90
1
08:30

Всем привет. Появилась такая задача.

У меня на сайте всем ссылкам добавляется слеш в конце. Пример: site.ru/post-group/o-cvetah/

Если перейти по адресу без слеша в конце, то происходит редирект на страницу со слешем.

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

И вроде бы ничего страшного, но хочется исправить такую недоработку. Руками добавлять ко всем ссылкам слеш - нереально долго. Хотелось бы найти какое-то быстрое решение.

Как я понял, тут 2 варианта:
- Либо писать скрипт/плагин для WP.
- Либо открыть БД в notepad++ и поиском и заменой, используя регулярные выражения решить этот вопрос.

Я искал плагины, пытался разобрать в регулярках, но задачу так и не смог решить.

Проблема в том, что ссылками могут быть еще и изображения, где слеш в конце не нужен. А также в том, что часть ссылок, все таки, уже со слешем, и их также нужно исключить из посика/замены.

Может кто-то подскажет способ. Или кто-то уже решал подобную задачу?

Буду благодарен за помощь и советы.

Редакции сообщения
25.12.2020 08:31АлександрПричина: не указано
25.12.2020 08:31АлександрПричина: не указано
0
garry
не в сети 24 часа
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2933
2
08:59

Приветствую. Есть плагины, вот один из них

Вы не можете просматривать опубликованные ссылки

Но есть более навороченные, где можно условие составить. Но я что-то сходу не нашел сейчас.
Что искать и на что заменить.
Только как вариант)

Редакции сообщения
25.12.2020 09:00garryПричина: не указано
25.12.2020 09:01garryПричина: не указано
1
Александр
не в сети 2 года
На сайте с 16.01.2019
Участник
Тем 31
Сообщения 90
3
09:46

garry сказал(а)
Приветствую. Есть плагины, вот один из них

Вы не можете просматривать опубликованные ссылки

Я пробовал плагин, он на первый взгляд немного упрощает задачу. Но проблема:
мне нужно заменить ссылку во всех постах:
site.ru/post-group/o-cvetah
на
site.ru/post-group/o-cvetah/

Плагин же заменит и те, где слеш уже есть. И в итоге у некоторых ссылок будет 2 слеша на конце 🙂

0
Preci
не в сети 5 дней
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1644
4
15:30

Тут много проблем:

1. Надо брать только внутренние ссылки
2. Надо проверять что у ссылке еще нет слеша в конце
3. Надо проверять что ссылка не ведет на файл
4. Надо проверять что в конце ссылки нет параметров, а если есть - вставлять слеш до ? или #

Может еще что-то.

Проще будет фильтровать контент и на php все это делать, тогда хотя бы если где-то будет косяк - можно просто отключить фильтрацию. И, например, где то хранить записи с такими ссылками и потихоньку ручками их менять

0
Вы не имеете права на публикацию сообщений в этой теме