it-roy-ru.com

Функция для активации темы WordPress внутри плагина

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

3
Notorious Etam

Конечно, для этого есть функция ( Кодекс ):

switch_theme( $stylesheet )

Это:

Переключает текущую тему на новые имена шаблонов и таблиц стилей. Принимает один аргумент: $ stylesheet темы. ($ stylesheet - это имя пула вашей папки. Это то же значение, которое вы использовали бы для дочерней темы, что-то вроде twentythirteen.) Оно также принимает дополнительную сигнатуру функции из двух аргументов: $ template затем $ stylesheet. Это для обратной совместимости.

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

3
Krzysiek Dróżdż

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

 enter image description here 

Затем вам придется обновить alexandria для youThemeName. Этот запрос будет выглядеть так:

$query = "UPDATE wp_options SET option_value='youThemeName' WHERE option_name='template' OR option_name='stylesheet';";
$wpdb->query($query);
1
Castiblanco