@niknamee

Как массово обернуть ссылки в шорткод?

Здравствуйте, я не программист, поэтому прошу помощи здесь, мне нужно обернуть все внешние ссылки в статьях на сайте ВордПресс в нужный мне шорткод. Делать это в ручную очень долго. Гуглил, но примера как это сделать так и не нашел. В итоге каждая ссылка должна выглядеть так [link]ссылка[/link]
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 1
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Могу посоветовать вам использовать любую библиотеку для парсинга html-тегов. Например, PHP Simple HTML DOM Parser

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

$html = str_get_html( get_the_content() );

$links = $html->find( 'a' );
foreach ( $links as $key => $link ) {
	var_dump( $link->href );
}

unset( $html );


Обернуть в шорткоды можно с помощью метода

$link->outertext = '[link]' . $link->outertext . '[/link]';


Сохранить получившийся контент нужно с помощью wp_update_post()

В целом, возможно есть и более простые решения, возможно вам удастся нагуглить даже плагины под вашу задачу или хотя бы похожие. Например, better search replace умеет менять все ссылки на сайте, а no external links преобразует все внешние ссылки во внутренние
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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