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

Хук 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'); ?>

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

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

Об авторе ADv

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