Статьи

Как активировать плагины и темы при установке WordPress

В предыдущей части этой серии мы узнали о том, как связать установку WordPress с плагинами и темами, а также wp-config-sample.php файл wp-config-sample.php .

Конечно, объединение тем и плагинов не такая удивительная идея, но вы должны признать, что редактирование wp-config-sample.php для установки WordPress с пользовательскими настройками wp-config.php — это круто. Кроме того, оба совета работают в сочетании с магическим приемом, который мы увидим в этом руководстве, и дополняют чрезвычайно полезный способ использования готовой установки WordPress для ваших будущих проектов.

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

Возбуждаться.

Около года назад я поделился небольшим открытием, которое я сделал на 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».

В этой теме будет всего два файла: обязательный style.css и файл functions.php который будет запускать наш код из четырех частей, который будет:

  1. изменить параметры по умолчанию
  2. удалить содержимое по умолчанию
  3. активировать наши предварительно установленные плагины
  4. переключиться на тему «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 по умолчанию, но я полагаю, что вы уже удалили их из своего пакета, как и я.

Все установлено, и теперь мы можем перейти к актуальной теме, которую будем использовать! Это самая простая часть, потому что мы собираемся запустить switch_theme() с именем папки темы в качестве параметра:

1
2
3
4
5
6
<?php
 
// switch the theme to «Headliner»
switch_theme( ‘headliner’ );
 
?>

Проще простого!

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? Как вы думаете, есть больше возможностей для улучшения серии? Скажите нам, что вы думаете, написав в разделе комментариев ниже. И если вам понравился сериал, не забудьте поделиться обеими частями!