Как защитить директорию 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';