2015-01-07 7 views
0

В настоящее время я работаю над разработкой серии тем Wordpress. Все эти темы должны иметь настраиваемые параметры темы, и все они будут иметь настраиваемые страницы параметров темы. Однако в некоторых темах есть варианты, которые не используются в других темах.Как я могу сохранить свои настройки при переключении тем Wordpress?

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

+0

Если вы напишете свои настройки тем в таблице wp_options, они должны оставаться там. Я не думаю, что таблица автоматически очищается. – flomei

+0

Настройки сайта (через 'wp_options') поддерживаются независимо от темы. Возможно, новая тема не использует те же имена параметров, что и старые. Однако, если они используют те же имена параметров в новой теме, что и старые, и вы сохраняете параметры в новой теме, эти параметры также отразятся при переключении на старую тему. –

ответ

0

Есть несколько функций, которые помогут вам сохранить ваши варианты своей темы.

Когда активирована тема, есть крючок, называемый after_switch_theme.

Лучший способ, если вы создаете массив, в котором используются ключи/значения по умолчанию.

Так создать массив так:

$theme_default_options = array (
    //..... 
); 

Таким образом, вы можете использовать для настройки опции:

add_action('after_switch_theme', 'theme_setup_function'); 

Если вы хотите удалить параметры, или работать с базой данных, когда вы переключите старую тему, вы можете использовать switch_theme. Это происходит на дезактивацию:

add_action('switch_theme', 'theme_deactivation_function'); 

Есть более 3 Funtion для вас манипулировать варианты:

add_option($option, $value); 
update_option($option, $value); 
delete_option($option); 

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

Используйте уникальное имя для всех вариантов для всей темы. Например, для темы pingpong используйте префикс, например pingpong_homepage.

+0

Я думаю, что это работает на меня! Спасибо за вход! – VeryOddlySpecific

Смежные вопросы