() translation by (you can also view the original English article)
В предыдущей части этой серии мы узнали, как установить WordPress с плагинами и темами, а также о настройке файла wp-config-sample.php
.
Конечно, установка тем и плагинов не такая уж потрясающая идея, но вы должны признать, что редактирование файла wp-config-sample.php
, чтобы установить WordPress со своими настройками в wp-config.php
— это круто. Кроме того, оба совета работают совместно с магическим трюком, который мы увидим в этом уроке и завершим чрезвычайно полезным способом использования установки WordPress из коробки для ваших будущих проектов.
В этой части мы собираемся представить потрясающее открытие об активации тем и плагинов после установки WordPress. Вы увидите это первыми на Tuts+, потому что оно не было представлено до сих пор нигде в Интернете.
Начинайте волноваться.
Одна из самых удобных констант WordPress, которые я когда-либо видел: WP_DEFAULT_THEME
Около года назад я поделился на Tuts+ маленьким открытием, которое я сделал, об использовании файла wp-config-sample.php
для настройки создаваемого wp-config.php
перед установкой WordPress. И это был пример известной константы wp-config.php
с названием WP_DEFAULT_THEME
— вы можете прочитать статью здесь, если вам это интересно.
Если вы удалите все темы «Twenty-Нечто» по умолчанию из стандартной установки WordPress, то после установки WordPress выдаст вам сообщение об ошибке вместо внешнего интерфейса, потому что каждая версия WordPress поставляется с темой «по умолчанию», не обращая внимания на другие темы в папке wp-content/themes
, если тема по умолчанию не существует.
Вот почему после написания той статьи я подумал, что мог бы использовать эту уловку для другого урока с названием вроде «Создание пакета WordPress из коробки». Я просто записал название, не составив плана, и оставил заметку в моем компьютере почти на год. (Говоря о прокрастинации... Я должен написать статью о ней. Надо записать это.)
Более 10 месяцев спустя я решил написать конспект, отослать в систему управления проектами Tuts+ Code и утвердить его у нашего редактора Тома МакФарлина. Когда он одобрил конспект и я начал писать урок из одной части, который я первоначально имел в виду, я начал думать о WP_DEFAULT_THEME
.
Хотя думать о константе WordPress на протяжении двух дней не совсем обычно, я в конечном итоге пришёл к идее, что мог бы использовать эту константу и хитрость с редактированием wp-config-sample.php
перед установкой WordPress, чтобы выполнить некоторые задания (например, удаление записи и страницы по умолчанию, изменение структуры ссылок и отключение комментариев), что я обычно делаю со «стартовым» плагином. Тогда я понял, что мог бы активировать некоторые плагины, заранее включённые в пакет. Затем я понял, что мог бы переключиться на настоящую тему после того, как эта вроде-бы-тема выполнит свою работу.
И тогда меня осенило: всё это означало, что я могу активировать включённые в комплект плагины и темы автоматически после установки WordPress! Возможно, вы сможете почувствовать моё волнение от слов, которые читаете сейчас — представьте себе, что я чувствовал, когда сделал это открытие.
Это обходной путь? Конечно. Вы можете даже назвать это «хаком» WordPress. Но он не затрагивает основные файлы (кроме wp-config-sample.php
, который нам разрешено редактировать), и не противоречит какому-либо соглашению в WordPress, кроме как «функциональный код — это территория плагинов», но я считаю, что использование «одноразовой темы», которая деактивирует себя через секунду, не является чем-то «некошерным». В конце концов, он не нарушает никаких файлов или правил, и это полностью безопасное решение для установки WordPress из коробки.
Подготовка темы «Группа разогрева»
Теперь, когда мы прошли через логику того, что мы собираемся сделать, настало время для создания одноразовой темы «Группа разогрева».
В этой теме будет только два файла: обязательный style.css
и файл functions.php
, запускающий наш код из четырёх частей, который:
- изменит настройки по умолчанию
- удалит содержимое по умолчанию
- активирует наши включённые в комплект плагины
- переключится на тему «основной исполнитель»
Ниже я привожу содержимое файла style.css
для копирования:
1 |
/*
|
2 |
Theme Name: Warm-Up Band
|
3 |
Author: Baris Unver from Tuts+ Code
|
4 |
Description: Disposable theme to run some errands.
|
5 |
Version: 0
|
6 |
*/
|
Изменение параметров по умолчанию
WordPress не позволяет изменить параметры по умолчанию, потому что установка длилась бы дольше, если это сделать. Но это не значит, что вы не можете их изменить программно. С помощью некоторых основных функций можно легко подогнать параметры под свои нужды:
1 |
<?php
|
2 |
|
3 |
// set the options to change
|
4 |
$option = array( |
5 |
// we don't want no description
|
6 |
'blogdescription' => '', |
7 |
// change category base
|
8 |
'category_base' => '/cat', |
9 |
// change tag base
|
10 |
'tag_base' => '/label', |
11 |
// disable comments
|
12 |
'default_comment_status' => 'closed', |
13 |
// disable trackbacks
|
14 |
'use_trackback' => '' |
15 |
// disable pingbacks
|
16 |
'default_ping_status' => 'closed', |
17 |
// disable pinging
|
18 |
'default_pingback_flag' => '', |
19 |
// change the permalink structure
|
20 |
'permalink_structure' => '/%postname%/', |
21 |
// dont use year/month folders for uploads
|
22 |
'uploads_use_yearmonth_folders' => '', |
23 |
// don't use those ugly smilies
|
24 |
'use_smilies' => '', |
25 |
);
|
26 |
|
27 |
// change the options!
|
28 |
foreach ( $option as $key => $value ) { |
29 |
update_option( $key, $value ); |
30 |
}
|
31 |
|
32 |
// flush rewrite rules because we changed the permalink structure
|
33 |
global $wp_rewrite; |
34 |
$wp_rewrite->flush_rules(); |
35 |
|
36 |
?>
|
Как вы можете видеть, мы:
- сначала создаём ассоциативный массив параметров и их значений,
- обходим массив в цикле
foreach
, чтобы использовать функциюupdate_option()
для каждого элемента массива, - очищаем правила перенаправлений, потому что мы изменили структуру постоянных ссылок.
Есть множество параметров по умолчанию, с которыми вы можете поиграть — проверьте их в файле wp-admin/includes/schema.php
.
Удаление содержимого по умолчанию
Теперь, когда мы изменили некоторые параметры по умолчанию, пришло время для удаления нежелательного содержимого, которое мы всегда удаляли вручную. Это проще:
1 |
<?php
|
2 |
|
3 |
// delete the default comment, post and page
|
4 |
wp_delete_comment( 1 ); |
5 |
wp_delete_post( 1, TRUE ); |
6 |
wp_delete_post( 2, TRUE ); |
7 |
|
8 |
?>
|
Активация плагинов в комплекте
Помните, что в предыдущей части мы решили включить в наш пакет три популярных плагина? Мы остановились на WP Super Cache, WordPress SEO от Yoast и Contact Form 7. Теперь давайте их активируем:
1 |
<?php
|
2 |
|
3 |
// we need to include the file below because the activate_plugin() function isn't normally defined in the front-end
|
4 |
include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); |
5 |
// activate pre-bundled plugins
|
6 |
activate_plugin( 'wp-super-cache/wp-cache.php' ); |
7 |
activate_plugin( 'wordpress-seo/wp-seo.php' ); |
8 |
activate_plugin( 'contact-form-7/wp-contact-form-7.php' ); |
9 |
|
10 |
?>
|
Мы также могли бы отключить плагины по умолчанию Akismet и Hello Dolly, но я думаю, что вы уже удалили их из вашего пакета, как сделал я.
Переключение на тему «Основной исполнитель»
Всё готово, и теперь мы можем перейти к настоящей теме, которую мы собираемся использовать! Это самая легкая часть, потому что мы собираемся запустить функцию switch_theme()
с именем папки темы в качестве параметра:
1 |
<?php
|
2 |
|
3 |
// switch the theme to "Headliner"
|
4 |
switch_theme( 'headliner' ); |
5 |
|
6 |
?>
|
Проще простого!
Полный файл functions.php
1 |
<?php
|
2 |
|
3 |
// set the options to change
|
4 |
$option = array( |
5 |
// we don't want no description
|
6 |
'blogdescription' => '', |
7 |
// change category base
|
8 |
'category_base' => '/cat', |
9 |
// change tag base
|
10 |
'tag_base' => '/label', |
11 |
// disable comments
|
12 |
'default_comment_status' => 'closed', |
13 |
// disable trackbacks
|
14 |
'use_trackback' => '' |
15 |
// disable pingbacks
|
16 |
'default_ping_status' => 'closed', |
17 |
// disable pinging
|
18 |
'default_pingback_flag' => '', |
19 |
// change the permalink structure
|
20 |
'permalink_structure' => '/%postname%/', |
21 |
// dont use year/month folders for uploads
|
22 |
'uploads_use_yearmonth_folders' => '', |
23 |
// don't use those ugly smilies
|
24 |
'use_smilies' => '', |
25 |
);
|
26 |
|
27 |
// change the options!
|
28 |
foreach ( $option as $key => $value ) { |
29 |
update_option( $key, $value ); |
30 |
}
|
31 |
|
32 |
// flush rewrite rules because we changed the permalink structure
|
33 |
global $wp_rewrite; |
34 |
$wp_rewrite->flush_rules(); |
35 |
|
36 |
// delete the default comment, post and page
|
37 |
wp_delete_comment( 1 ); |
38 |
wp_delete_post( 1, TRUE ); |
39 |
wp_delete_post( 2, TRUE ); |
40 |
|
41 |
// we need to include the file below because the activate_plugin() function isn't normally defined in the front-end
|
42 |
include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); |
43 |
// activate pre-bundled plugins
|
44 |
activate_plugin( 'wp-super-cache/wp-cache.php' ); |
45 |
activate_plugin( 'wordpress-seo/wp-seo.php' ); |
46 |
activate_plugin( 'contact-form-7/wp-contact-form-7.php' ); |
47 |
|
48 |
// switch the theme to "Headliner"
|
49 |
switch_theme( 'headliner' ); |
50 |
|
51 |
?>
|
Конец
Хотя WordPress известен своей «установкой за пять минут», я считаю, что можно выиграть ещё несколько минут, если вы знаете, что делаете. С вещами, которые мы рассмотрели в этой серии, вы могли бы выиграть больше времени до и во время процесса установки WordPress.
Что вы думаете о создании автоматизированной установки WordPress? Думаете ли вы, что есть возможности для улучшения этой серии? Расскажите нам, что вы думаете, написав в разделе комментариев ниже. И если вам понравилась серия, не забудьте поделиться ссылками на обе части!