Как автоматически добавить target=_blank в ссылки PDF с помощью PHP?
Мне интересно, можно ли автоматически добавлять target=_blank
на любую ссылку в формате PDF на моем сайте, чтобы она
<a href="pdf1.pdf">link text</a>
<a href="pdf2.pdf">link text</a>
в
<a href="Pdf1.pdf" target="_blank">link text</a>
<a href="Pdf2.pdf" target="_blank">link text</a>
так как на этом сайте много PDF-файлов, и было бы проще сделать это автоматически, чем устанавливать их все по одному.
Я пробовал решение Javascript:
$(".newWindow a[href$='pdf']").attr('target','_blank');
Но мне интересно, есть ли способ сделать это автоматически в PHP, возможно, добавив что-то в файл функций Wordpress?
2 ответа
Если твой .pdf
ссылки только на содержание ваших страниц. Самый быстрый и простой способ сделать это - заменить внутри файла шаблона темы, который показывает содержимое вашей страницы, следующее:
the_content();
от
echo str_replace('.pdf"', '.pdf" target="_blank"', get_the_content());
Это будет внутри файла content.php
вашей темы.
Обратите внимание, что указанная выше функция может иметь параметр (например, the_content('',FALSE,'');
) вам нужно передать тот же параметр в get_the_content()
функция также.
Используя регулярные выражения, вы можете выполнять более умные замены. Этот пример ниже будет работать на всех <a>
теги с расширением PDF в URL, даже если URL имеет параметры.
echo preg_replace('/((<a (?=.*\.pdf)(?!.*target="_blank").*?)>)/', '$2 target="_blank">', get_the_content());
Это регулярное выражение выполняет две проверки: во-первых, чтобы проверить, содержит ли URL-адрес расширение PDF; и во-вторых, чтобы проверить, target="_blank"
атрибут еще не установлен. Если оба эти требования будут выполнены, он добавит target="_blank"
Атрибут до конца тега.