Как автоматически добавить 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" Атрибут до конца тега.

Другие вопросы по тегам