Хук WordPress: Автоматический атрибут “Nofollow” для внешних ссылок в контенте записей
По-умолчанию WordPress не добавляет автоматически атрибут rel=”nofollow” для внешних ссылок в записях блога. Если вам нужно такое реализовать, вот простой хук WordPress для добавления указанного атрибута к каждой ссылке.
Вставьте следующий сниппет в файл functions.php вашей темы. После сохранения все внешние ссылки в ваших записях превратятся в “Nofollow”.
add_filter('the_content', 'auto_nofollow');
function auto_nofollow($content) {
//return stripslashes(wp_rel_nofollow($content));
return preg_replace_callback('/<a>]+/', 'auto_nofollow_callback', $content);
}
function auto_nofollow_callback($matches) {
$link = $matches[0];
$site_link = get_bloginfo('url');
if (strpos($link, 'rel') === false) {
$link = preg_replace("%(href=S(?!$site_link))%i", 'rel="nofollow" $1', $link);
} elseif (preg_match("%href=S(?!$site_link)%i", $link)) {
$link = preg_replace('/rel=S(?!nofollow)S*/i', 'rel="nofollow"', $link);
}
return $link;
}
Добавляем ссылки на панель инструментов WordPress
Как и многие другие элементы, WordPress позволяет настроить панель инструментов, используя функцию using the add_node(). Этот сниппет поможет вам добавить ссылку на панель инструментов WordPress.
Вставьте следующий код в файл functions.php вашей темы или в плагин для сайта WordPress:
// добавляем ссылку на панель инструментов WP
function custom_toolbar_link($wp_admin_bar) {
$args = array(
'id' => 'gmail',
'title' => 'Gmail',
'href' => 'https://mail.google.com/mail/#inbox',
'meta' => array(
'class' => 'gmail',
'title' => 'admin@wpincode.com'
)
);
$wp_admin_bar->add_node($args);
}
add_action('admin_bar_menu', 'custom_toolbar_link', 999);
После того, как вы закончите, отредактируйте следующие элементы и все будет готово.
‘id’ => ‘gmail’ — ID элемента, содержащего настраиваемую ссылку
‘title’ => ‘Gmail’ — текст ссылки
‘href’ => ‘https://mail.google.com/mail/#inbox’ — URL настраиваемой ссылки
‘class’ => ‘gmail’ — атрибут class настраиваемой ссылки
‘title’ => ‘admin@wpincode.com’ — атрибут заголовка настраиваемой ссылки
Автоматически скрываем адреса email от спамботов на вашем блоге WordPress
Спам-боты — определенно большая проблема всех блогов и сайтов. Ниже удобный и полезный сниппет для предотвращения сканирования вашего блога спампботами и кражи емейл адресов для последующего их использования спамерами.
Вставьте следующий код в ваш файл functions.php. После сохранения код будет фильтровать контент и содержимое виджетов для сокрытия емейл-адресов от спамеров.
function security_remove_emails($content) {
$pattern = '/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})/i';
$fix = preg_replace_callback($pattern,"security_remove_emails_logic", $content);
return $fix;
}
function security_remove_emails_logic($result) {
return antispambot($result[1]);
}
add_filter( 'the_content', 'security_remove_emails', 20 );
add_filter( 'widget_text', 'security_remove_emails', 20 );
Делаем более защищенные инклуды
Быстрый способ защитить свои PHP инклуды, разместив их вне корневной директории.
Например, если обычно у вас инклуды храняться в корневой директории, вот так:
/var/www/vhosts/example.com/httpdocs/wordpress/includes/
Мы расположим файлы выше структуры папок, так что они перестанут быть доступными через веб, вот так:
/var/includes/
Затем инклудим их в файлы вашей темы, используя полный путь:
<?php include_once('/var/includes/some-file.php'); ?>
Вуаля, файлы теперь недоступны извне, из веб.
