Сегодня нужно было на сайте сделать один пункт меню, чтобы он открывался в новой вкладке браузера. Я помню, что в Вордпресс в самом меню (в админке) есть переключатель типа «открыть ссылку в новом окне». Какое было мое удивление, когда я перешел в настройки меню и не нашел там такой «галочки». В поисковике задал соответствующий вопрос и первой статьей было инструкция почему я не вижу этой галочки. Статья звучала примерно так «По умолчанию в WordPress нет функции выбора, в какой вкладке должен открываться пункт меню: в текущей или новой. Чтобы изменить это, перейдите в раздел управления меню (Внешний вид -> Меню), выберите вкладку «Настройки экрана» в правом верхнем углу окна и отметьте пункт «Цель ссылки».
Я сделал все по инструкции и ура, переключатель появился. Я настроил всё как нужно.
Мне также задали вопрос, а можно автоматизировать открытие всех внешних ссылок в статьях в новом окне.
Конечно можно, кому нужно это, вот вам код плагина (написал на коленке и не проверял работоспособность)
<?php
/*
Plugin Name: Открытие внешних ссылок в новом окне
Description: Открытие всех внешних ссылок в новом окне
Version: 1.0
Author: Parkhomenko Alexander
*/
function wplife_open_external_links_in_new_window($content) {
$content = preg_replace_callback('/<a[^>]+/', 'wplife_add_target_blank', $content);
return $content;
}
function wplife_add_target_blank($matches) {
$link = $matches[0];
$url = parse_url($link);
$home_url = parse_url(site_url());
if(isset($url['host']) && $url['host'] != $home_url['host']) {
if(!preg_match('/target\s*=\s*[\'"]?_blank[\'"]?/i', $link))
$link = str_replace('<a ', '<a target="_blank" ', $link);
}
return $link;
}
add_filter('the_content', 'wplife_open_external_links_in_new_window');
Этот плагин будет проверять все ссылки на вашем сайте и добавлять атрибут target="_blank"
к внешним ссылкам. Сохраните этот код как wplife-open-external-links-in-new-window.php
и загрузите на свой сайт в папку wp-content/plugins
. Активируйте плагин в админ-панели и все внешние ссылки будут открываться в новом окне.