Свежие настройки wp-config, о которых вы, скорее всего, не слышали

Файл wp-config.php – самый любимый для одной части пользователей и самый отпугивающий для другой.

Существуют бесчисленное множество советов и подсказок в разных статьях, связанных с wp-config; однако данная статья будет несколько отличаться от всех них. В данной статье мы познакомим вас с восемью новыми приемами wp-config, которые менее известны, нежели функциональность, связанная с отключением ревизий, увеличением лимита памяти и т.д.

Блог Миши Рудрастых

Не забудьте сделать бэкап вашей сборки! Советы в данной статье не меняют каких-либо значений в базе данных и не затрагивают никаких файлов (кроме wp-config, естественно), поэтому вы можете просто загрузить себе копию вашего файла wp-config.php, чтобы впоследствии вернуться к начальному варианту, если вдруг что-то пойдет не так. Лучше предохраниться, чем потом кусать локти – активные бэкапы всегда хороший вариант!

1. Задание дефолтной темы для новых WordPress сборок с помощью WP_DEFAULT_THEME

Допустим, вы – фрилансер, занимающийся веб-дизайном (или агентство по веб-дизайну), который использует собственную WordPress-тему для почти всех своих клиентов. Представьте себе, что вам не нужно всякий раз при создании новой сборки WordPress менять тему с «Twenty-очередной_номер» на «Классную базовую тему». Разве это не прекрасно?

Отлично, вы можете это сделать с помощью константы WP_DEFAULT_THEME:

define( 'WP_DEFAULT_THEME', 'default-theme-folder-name' );

Вы можете задаться вопросом: «Каким образом я установлю дефолтную тему путем редактирования файла wp-config.php, если этот файл создается в процессе установки WordPress?» Превосходный вопрос, однако мы не будем менять файл wp-config.php в данном случае: вместо этого мы вставим код прямо в файл wp-config-sample.php!

Я не говорю сейчас о редактировании и переименовании файла, как это происходило в 2006, нет, достаточно только отредактировать файл и сохранить его: WordPress способен обнаруживать изменения и дополнения в файле wp-config-sample.php (за исключением учетных данных БД), и использовать их в процессе установки свежей копии WordPress.

Классно, правда? Я не нашел страниц, на которых бы упоминался данный совет (я сам обнаружил эту методику совершенно случайно), поэтому данное руководство будет первым, в котором раскрывается подобная техника.

2. Отключение возможности автоматического обновления в WordPress с помощью AUTOMATIC_UPDATER_DISABLED

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

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

define( 'AUTOMATIC_UPDATER_DISABLED', true );

3. Включение корзины для медиа-файлов с помощью MEDIA_TRASH

Возможно, вы тоже сталкивались с тем, что случайно удаляли важный медиа-файл. Я тоже делал это, пока не наткнулся на следующую константу:

define( 'MEDIA_TRASH', true );

Задайте ее, и вы больше никогда не столкнетесь с проблемами при удалении медиа-файлов – за малым исключением: если вы не отключали возможность корзины вообще путем задания константы EMPTY_TRASH_DAYS в «0».

Будьте аккуратны с этим.

4. Пропускаем директорию wp-content в ходе обновления с помощью CORE_UPGRADE_SKIP_NEW_BUNDLED

Я не использую дефолтные темы. Не имею ничего против них, но они мне не нравятся, я предпочитаю создавать и использовать свои собственные темы. Таким образом, мне не нужна новая дефолтная тема, когда я устанавливаю главное обновление.

Поскольку WordPress очень гибок, и я не единственный, кого раздражает такая проблема, мы можем воспользоваться опцией, позволяющей пропустить директорию wp-content в процессе обновления.

define( 'CORE_UPGRADE_SKIP_NEW_BUNDLED', true );

Благодаря этому процесс обновления будет проходить немного быстрее. Конечно, выгода будет не более секунды, но все же…

5. Разрешаем загрузки любых файлов в WordPress для администраторов с помощью ALLOW_UNFILTERED_UPLOADS

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

Конечно же, нет, ведь вы можете просто задать константу ALLOW_UNFILTERED_UPLOADS:

define( 'ALLOW_UNFILTERED_UPLOADS', true );

Однако этот код не позволяет всем пользователям загружать любые файлы. Только администраторы могут загружать все, что им захочется.

6. Динамическое определение WPLANG для многоязычных сайтов

Если у вас есть многоязычный сайт, и вам нужно изменить язык вашей темы и вашей панели администратора, вы можете использовать небольшой прием для того, чтобы детектировать язык браузера вашего посетителя и задать константу WPLANG на основе полученной информации.

Для начала вам нужно будет создать файл wp-lang.php и заполнить его следующим кодом, после чего сохранить его в ту же папку, в которой находится ваш файл wp-config.php:

<?php 
// start the session 
session_start(); 
 
// if there's a "lang" parameter in the URL...  
if( isset( $_GET[ 'lang' ] ) ) { 
 
    // ...set a session variable named WPLANG based on the URL parameter...     
    $_SESSION[ 'WPLANG' ] = $_GET[ 'lang' ]; 
 
    // ...and define the WPLANG constant with the WPLANG session variable 
    define( 'WPLANG', $_SESSION[ 'WPLANG' ] ); 
 
// if there isn't a "lang" parameter in the URL...  
} else {
 
    // if the WPLANG session variable is already set...
    if( isset( $_SESSION[ 'WPLANG' ] ) ) {
 
        // ...define the WPLANG constant with the WPLANG session variable 
        define( 'WPLANG', $_SESSION[ 'WPLANG' ] );  
 
    // if the WPLANG session variable isn't set...
    } else { 
         
        // set the WPLANG constant to your default language code is (or empty, if you don't need it)        
        define( 'WPLANG', 'tr_TR' ); 
             
    } 
} 
?>

Теперь в файле wp-config.php меняем строку с определением WPLANG на следующую строку:

require_once( dirname( __FILE__ ) . '/wp-lang.php' );

Вуаля! Ваши посетители теперь могут менять язык вашей темы и панели администратора, просто щелкнув по кнопке с URL-параметром lang=fr_FR.

7. Задаем свой WordPress.com API-ключ как константу с помощью WPCOM_API_KEY

Если вы используете плагин, который требует для своей работы WordPress.com API-ключ (как, к примеру, Jetpack или Akismet), и поддерживаете много разных сайтов на WordPress, то в таком случае вы, возможно, сталкивались с проблемой ввода данного ключа всякий раз при установке данного плагина.

Есть и более простой способ. Вы можете определить свой API-ключ в  файле wp-config.php в виде константы:

define( 'WPCOM_API_KEY', 'YourKeyHere' );

Проверьте, есть ли у других ваших плагинов данная возможность. Плагины, как SlideDeck и Gravity Forms, также поддерживают задание своих API-ключей в виде констант.

8. Переопределение разрешенных HTML-тегов с помощью CUSTOM_TAGS

В WordPress существует функция wp_kses(), которая, как утверждает Кодекс, проверяет тот факт, что в $string присутствуют только разрешенные HTML-элементы, имена атрибутов и значения атрибутов, а также нормальные HTML-объекты.

Вы можете отредактировать эти правила с помощью фильтров:

<?php 
 
function my_filter( $string ) {
 
    global $allowedtags;
    $allowedtags['img'] = array( 'src' => array () );
 
    return $string;
}
add_filter( 'pre_kses', 'my_filter' );
?>

Однако если вам нужен тотальный контроль, который означает перезапись переменных $allowedposttags, $allowedtags и $allowedentitynames, вы можете определить константу CUSTOM_TAGS в wp-config.php:

define( 'CUSTOM_TAGS', true );
$allowedposttags = array();
$allowedtags = array();
$allowedentitynames = array();

Вы должны будете переписать каждую переменную ниже. Вы можете просто скопировать/вставить переменные в wp-includes/kses.php, после чего отредактировать код.

Источник: code.tutsplus.com

Понравилась статья? Поделиться с друзьями:
Комментарии: 5
  1. mihdan

    Данной инфы пока нет на http://codex.wordpress.org/Editing_wp-config.php. Спасибо

  2. 1blin

    Интересно. Навсегда избавиться от дефолтной темы – это же прекрасная новость! :)

  3. mihey

    Ооочень полезно. Большое Спасибо!

  4. uglion

    А как на мультисайте заставить создваться новым сайтам с нужной темой? Пробовал вставлять строку define(‘WP_DEFAULT_THEME’, ‘mh-magazine-lite’); и в wp-config.php и в wp-config-sample.php, а всё равно стандартая тема лезет.

    1. Дмитрий (автор)

      Возможно, что для мультисайтов эта константа вообще не работает.

Добавить комментарий для mihdan Отменить ответ

Получать новые комментарии по электронной почте. Вы можете подписаться без комментирования.