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

Как защитить директорию uploads вашего блога на WordPress

Очевидно, что безопасность является очень важным аспектом на сайте. По-умолчанию, WordPress довольно хорошо защищен, однако, как известно, совершенству нет предела. Следующий способ поможет вам защитить вашу директорию uploads с помощью файла .htaccess и разрешит загружать только файлы с определенными расширениями.

Создайте файл с именем .htaccess и вставьте в него следующий код. После этого загрузите файл в вашу папку wp-content/uploads.

Следующий пример будет разрешать загружать только файлы изображений. Если же вам понадобятся другие форматы, например .pdf, то не забудьте добавить это расширение в список в строке 5.

<Files ~ ".*..*">
	Order Allow,Deny
	Deny from all
</Files>
<FilesMatch ".(jpg|jpeg|jpe|gif|png|tif|tiff)$">
	Order Deny,Allow
	Allow from all
</FilesMatch>

Отключаем редактирование файлов в административной панели WordPress

У WordPress есть встроенные редакторы для плагинов и тем, и это реально удобно! Однако, если вы разрабатываете сайт для клиента, то часто стОит обезопасить себя от того, чтобы клиент не поломал что-нибудь в коде. Поэтому лучшим решением будет отключить любую возможность редактирования файлов в административной панели WordPress.

Вставьте следующий код (или только нужную вам строку) в ваш файл wp-config.php. Он расположен в корне установленного вами WordPress..

define('DISALLOW_FILE_EDIT', true); //Запрещаем редактирование файлов через встроенный редактор
define('DISALLOW_FILE_MODS',true); //Запрещаем установку обновлений

Убираем версию WordPress из страниц и новостных лент

По-умолчанию WordPress публично отображает номер своей версии в лентах RSS и Atom. Ниже сниппет, который позволит убрать этот номер версии со всех фидов вашего блога.

Просто вставляем код ниже в файл functions.php вашей темы или в плагин для сайта WordPress:

add_filter('the_generator', 'devise_complete_version_removal');
function devise_complete_version_removal() {
	return '';
}

Как заставить RSS Widget обновляться более часто

В WordPress есть встроенный виджет, который позволяет вам отобразить любой фид любого сайта на вашем блоге. И не смотря на то, что виджет замечательный, иногда необходимо, чтобы он обновлял новости чаще, чем по-умолчанию. Вот простое решение, которое изменит частоту обновления.

Для применения функции просто вставьте следующий код в ваш файл functions.php:

add_filter( 'wp_feed_cache_transient_lifetime', create_function('$a', 'return 600;') );

WordPress хук: Как получить первую ссылку в записях

Иногда вам может понадобиться опубликовать ссылку в другом месте, нежели в контенте как обычно (например, как это реализовано в формате записей «Ссылка»). Для этого есть полезный сниппет, который получает первую ссылку из записи.

Первым делом необходимо интегрировать функцию в вашу тему. Для этого вставляем код в файл functions.php:

function get_content_link( $content = false, $echo = false ){
    if ( $content === false )
        $content = get_the_content(); 

    $content = preg_match_all( '/hrefs*=s*["']([^"']+)/', $content, $links );
    $content = $links[1][0];

    if ( empty($content) ) {
    	$content = false;
    }

    return $content;
}

Функция выше находит первую ссылку в опубликованной записи и возвращает ее вам. В этом случае вы можете вывести ее в заголовок (или любое другое место) как на примере ниже:

<h2><a href="<?php echo get_content_link( get_the_content() ); ?>"><?php the_title(); ?></a></h2>

WordPress хук: Добавляем пользовательские поля ко всем записям

Не важно зачем, но иногда возникает необходимость добавить дополнительные пользовательские поля ко всем существующим у вас записям. Можно сделать это вручную, однако если постов много, то процесс может занять много времени. Вот простое решение для добавления пользовательских полей ко всем записям просто и незатейливо.

Необходимо выполнить следующий SQL-запрос в вашей базе данных WordPress, используя консольный клиент или же PhpMyAdmin. Он автоматически добавит пользовательское дополнительное поле с именем MyCustomField ко всем существующим на блоге записям. Не забудьте сделать резервную копию вашей базы данных перед использованием запроса.

INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'MyCustomField'
AS meta_key 'myvalue AS meta_value
FROM wp_posts WHERE ID NOT IN
(SELECT post_id FROM wp_postmeta WHERE meta_key = 'MyCustomField')
`` AND post_type = 'post';
VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Об авторе ADv

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