Не первый проект на WordPress делаю с Redux Framework и каждый раз как заново) Поэтому решила написать прежде всего для себя коротенькую инструкцию, но может и вам будет полезно.
- Установка плагина Redux Framework
- Объявляем в header.php и footer.php глобальную произвольную переменную
<?php global $your_var_name; ?>
- Документация «Get started» http://devs.redux.io/guides/
- Копирую всю папку sample целиком из директории плагина в папку темы. Прописываю в functions.php для подключения файла конфигурации:
require_once (dirname(__FILE__) . '/sample/barebones-config.php');
- Всё, начинаю редактировать файл barebones-config.php, в первую очередь меняю там название переменной redux_demo на свое.
$opt_name = 'your_var_name';
Дальше начинаю менять поля и секции под себя, где через чтение документации, где методом тыка))
Вывод нужного поля в шаблоне:
<?php echo $house['phone']; ?>
где $house — это глобальная переменная, а phone — id поля.
Одно из самых используемых полей Redux это repeater. Добавить его несложно, но вывод в цикле заставил меня изрядно помучиться. Вывод всё-таки я организовала, приведу пример своего кода.
Redux::set_section(
$opt_name,
array(
'title' => __( 'Проекты', 'house-uu' ),
'id' => 'projects',
'subsection' => false,
'fields' => array(
array(
'id' => 'repeater_projects',
'type' => 'repeater',
'title' => esc_html__( 'Проекты', 'house-uu' ),
'full_width' => true,
'item_name' => '',
'sortable' => true,
'active' => false,
'collapsible' => false,
'group_values' => false, // Group all fields below within the repeater ID
'fields' => array(
array(
'id' => 'project_title',
'type' => 'text',
'title' => esc_html__( 'Заголовок проекта', 'house-uu' ),
'default' => '',
),
array(
'id' => 'project-editor',
'type' => 'textarea',
'title' => esc_html__( 'Описание', 'house-uu' ),
'default' => 'Описание',
),
array(
'id' => 'slider_sortcode',
'type' => 'text',
'title' => esc_html__( 'Шорткод слайдера', 'house-uu' ),
'default' => '',
),
),
),
),
),
);
Это код из реального проекта, файл barebones-config.php. Как видно из кода, здесь репитер полей используется для добавления группы полей, в моем случае проекта, состоящего из заголовка (project_title), описания (project-text) и шорткода галереи (slider_sortcode).
Вывод в шаблоне в цикле.
<?php
if (isset($house['project_title'][0])){
$sum = count($house['project_title']);
if ($sum > 0) {
for ($i = 0; $i < $sum; $i++) {
?>
<div class="project-item">
<div class="project-item__info">
<h3><?php echo $house['project_title'][$i]; ?></h3>
<?php echo $house['project-editor'][$i]; ?>
</div>
<div class="project-item__gallery">
<div class="project-item__slider">
<?php echo do_shortcode($house['slider_sortcode'][$i]); ?>
</div>
</div>
</div>
<?php
}
}
}
?>