Пачка полезных сниппетов для блога. Часть 6

Хук WordPress: Автоматический атрибут “Nofollow” для внешних ссылок в контенте записей

По-умолчанию WordPress не добавляет автоматически атрибут rel=”nofollow” для внешних ссылок в записях блога. Если вам нужно такое реализовать, вот простой хук WordPress для добавления указанного атрибута к каждой ссылке.

Вставьте следующий сниппет в файл functions.php вашей темы. После сохранения все внешние ссылки в ваших записях превратятся в “Nofollow”.

1add_filter('the_content', 'auto_nofollow');
2  
3function auto_nofollow($content) {
4    //return stripslashes(wp_rel_nofollow($content));
5  
6    return preg_replace_callback('/<a>]+/', 'auto_nofollow_callback', $content);
7}
8  
9function auto_nofollow_callback($matches) {
10    $link = $matches[0];
11    $site_link = get_bloginfo('url');
12  
13    if (strpos($link, 'rel') === false) {
14        $link = preg_replace("%(href=S(?!$site_link))%i", 'rel="nofollow" $1', $link);
15    } elseif (preg_match("%href=S(?!$site_link)%i", $link)) {
16        $link = preg_replace('/rel=S(?!nofollow)S*/i', 'rel="nofollow"', $link);
17    }
18    return $link;
19}

Добавляем ссылки на панель инструментов WordPress

Как и многие другие элементы, WordPress позволяет настроить панель инструментов, используя функцию using the add_node(). Этот сниппет поможет вам добавить ссылку на панель инструментов WordPress.

Вставьте следующий код в файл functions.php вашей темы или в плагин для сайта WordPress:

1// добавляем ссылку на панель инструментов WP
2function custom_toolbar_link($wp_admin_bar) {
3    $args = array(
4        'id' => 'gmail',
5        'title' => 'Gmail',
6        'href' => 'https://mail.google.com/mail/#inbox',
7        'meta' => array(
8            'class' => 'gmail',
9            'title' => 'admin@wpincode.com'
10            )
11    );
12    $wp_admin_bar->add_node($args);
13}
14add_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. После сохранения код будет фильтровать контент и содержимое виджетов для сокрытия емейл-адресов от спамеров.

1function security_remove_emails($content) {
2    $pattern = '/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})/i';
3    $fix = preg_replace_callback($pattern,"security_remove_emails_logic", $content);
4 
5    return $fix;
6}
7function security_remove_emails_logic($result) {
8    return antispambot($result[1]);
9}
10add_filter( 'the_content', 'security_remove_emails', 20 );
11add_filter( 'widget_text', 'security_remove_emails', 20 );

Делаем более защищенные инклуды

Быстрый способ защитить свои PHP инклуды, разместив их вне корневной директории.

Например, если обычно у вас инклуды храняться в корневой директории, вот так:

1/var/www/vhosts/example.com/httpdocs/wordpress/includes/

Мы расположим файлы выше структуры папок, так что они перестанут быть доступными через веб, вот так:

Затем инклудим их в файлы вашей темы, используя полный путь:

1<?php include_once('/var/includes/some-file.php'); ?>

Вуаля, файлы теперь недоступны извне, из веб.

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top