Я использую тему WordPress, которая имеет свою собственную фреймворк, который основан на редуксной структуре, я думаю. Я модифицирую эту тему, используя дочернюю тему. Я хочу добавить к опциям темы в бэкенде, и я нашел функцию в файлах родительской темы, которая, кажется, именно то, что мне нужно:
/*
*
* Custom function for filtering the sections array. Good for child themes to override or add to the sections.
* Simply include this function in the child themes functions.php file.
*
* NOTE: the defined constansts for URLs, and directories will NOT be available at this point in a child theme,
* so you must use get_template_directory_uri() if you want to use any of the built in icons
*
*/
function add_another_section($sections){
//$sections = array();
$sections[] = array(
'title' => __('A Section added by hook', 'swift-framework-admin'),
'desc' => __('<p class="description">This is a section created by adding a filter to the sections array. Can be used by child themes to add/remove sections from the options.</p>', 'swift-framework-admin'),
// Redux ships with the glyphicons free icon pack, included in the options folder.
// Feel free to use them, add your own icons, or leave this blank for the default.
'icon' => trailingslashit(get_template_directory_uri()) . 'options/img/icons/glyphicons_062_attach.png',
// Leave this as a blank section, no options just some intro text set above.
'fields' => array()
);
return $sections;
}
//add_filter('redux-opts-sections-twenty_eleven', 'add_another_section');
Я добавил эту функцию в functions.php моей дочерней темы и раскомментировал add_filter. Тем не менее, это не похоже на работу, и новый раздел не был добавлен.
Я наткнулся на это обсуждение в другом месте что говорит о том, что имя функции нужно изменить (я получаю ту же ошибку, о которой говорилось там). Я сделал это, и это все еще не будет работать.
Вот что у меня есть в моей дочерней теме functions.php
function add_another_section_bl($sections){
$sections = array();
$sections[] = array(
'title' => __('A Section added by hook', 'swift-framework-admin'),
'desc' => __('<p class="description">This is a section created by adding a filter to the sections array. Can be used by child themes to add/remove sections from the options.</p>', 'swift-framework-admin'),
// Redux ships with the glyphicons free icon pack, included in the options folder.
// Feel free to use them, add your own icons, or leave this blank for the default.
'icon' => trailingslashit(get_template_directory_uri()) . 'options/img/icons/glyphicons_062_attach.png',
// Leave this as a blank section, no options just some intro text set above.
'fields' => array()
);
return $sections;
}
add_filter('redux-opts-sections-twenty_eleven', 'add_another_section_bl');
Я не был уверен, нужно ли редактировать имя фильтра ‘redux-opts-section-fifty_eleven’, поскольку в нем упоминается тема двадцать одиннадцать. Я попробовал это с другими названиями тем в конце вместо двадцати одиннадцатого, и это не имело никакого эффекта.
Любая помощь будет принята с благодарностью! Кроме того, я смог добавить новые параметры в параметры темы, скопировав всю папку framwork в мою дочернюю тему и определив путь к инфраструктуре в functions.php дочерней темы. Я просто чувствовал, что должен быть гораздо более изящный, аккуратный способ добиться этого, и я думал, что эта функция звучит идеально.
Большое спасибо.
Ведущий разработчик Redux Framework здесь. Это решение работает, только если вы используете Redux Framework 3.1+. Если у вас более старая версия, установите плагин Redux Framework, и он переопределит версию в вашей теме.
Сначала перейдите к текущей панели параметров. Откройте консоль JavaScript (используйте Chrome или Firefox) и введите: redux.args.opt_name
, Это перекликается с именем. Скопируйте это и вставьте в эту функцию, заменив OPT_NAME
с именем, которое было echo’d out:
function add_another_section_bl($sections){
$sections = array(); // Delete this if you want to keep original sections!
$sections[] = array(
'title' => __('A Section added by hook', 'swift-framework-admin'),
'desc' => __('<p class="description">This is a section created by adding a filter to the sections array. Can be used by child themes to add/remove sections from the options.</p>', 'swift-framework-admin'),
// Redux ships with the glyphicons free icon pack, included in the options folder.
// Feel free to use them, add your own icons, or leave this blank for the default.
'icon' => trailingslashit(get_template_directory_uri()) . 'options/img/icons/glyphicons_062_attach.png',
// Leave this as a blank section, no options just some intro text set above.
'fields' => array()
);
return $sections;
}
// In this example OPT_NAME is the returned opt_name.
add_filter("redux/options/OPT_NAME/sections", 'add_another_section_bl');
Удачи!
** ОБНОВИТЬ **
Также с помощью Redux API вы можете легко добавить новый раздел.
Redux::addSection(array(
'title' => __('A Section added by hook', 'swift-framework-admin'),
'desc' => __('<p class="description">This is a section created by adding a filter to the sections array. Can be used by child themes to add/remove sections from the options.</p>', 'swift-framework-admin'),
// Redux ships with the glyphicons free icon pack, included in the options folder.
// Feel free to use them, add your own icons, or leave this blank for the default.
'icon' => trailingslashit(get_template_directory_uri()) . 'options/img/icons/glyphicons_062_attach.png',
// Leave this as a blank section, no options just some intro text set above.
'fields' => array()
))
Это немного облегчает использование нашего API. Я полагаю, мы выпустили Redux 3.2 …
Других решений пока нет …