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