· 6 years ago · Oct 24, 2019, 09:58 PM
1WP Theme Option или плагин Redux Framework - хранение глобальных данных хедер и футер
2===========================================================
3Чтобы удалить баннер контейнер id="redux-header"
4plugins\redux-framework\ReduxCore\templates\panel\header.tpl.php
5Чтобы удалит надпись, удали строку в sample-config
6$args['intro_text'] = sprintf( __( '<p>Did you know that Redux sets a global variable for you? To access any of your saved options from within your code you can use your global variable: <strong>$%1$s</strong></p>', 'redux-framework-demo' ), $v );
7и заменить на
8$args['intro_text'] = '<h1>Глобальные настройки</h1>';
9
10
11
121.Устанавливаем Плагин Redux — это framework, который в админку добавляет возможность разных настроек
132.Заходим в шаблоне в папку плагина plugins/redux-framework/sample и копируем файл sample-config.php в папку INC в корне шаблоны, переименовываем его в theme-option.php
143.В конце function.php подключаем redux-option.php
15require get_template_directory() . '/inc/redux-option.php';
16
174. Смотрим шаблон верски и определяем какие и сколько глобальных данных будут в Option Setting (для Header и Footer)
18
195. Создаем массив в theme-option.php #279 перед START BASIC Field, а начиная с START BASIC Field все удаляем (будем все брать из /plugins/redux-framework/sample/sample-fonfig.php)
20Например Header делаем три поля для загрузки логотипа, написания телефона и email
21
22<?php
23 // -> START Basic Fields
24 Redux::setSection( $opt_name, array(
25 'title' => __( 'Глобальные настройки', 'redux-framework-demo' ),
26 'id' => 'basic',
27 'desc' => __( 'Настройки для шаблона' ),
28 'customizer_width' => '400px',
29 'icon' => 'el el-home'
30 ) );
31
32
33
34
35
36
37 Redux::setSection( $opt_name, array(
38 'title' => __( 'Контент', 'redux-framework-demo' ),
39 'id' => 'body-contact',
40 'subsection' => true,
41 'customizer_width' => '450px',
42 'desc' => __( 'Вставьте ваши контактные данные', 'redux-framework-demo' ),
43 'fields' => array(
44 array(
45 'id' => 'title-text',
46 'type' => 'text',
47 'title' => __( 'Заголовок H1', 'redux-framework-demo' ),
48 'subtitle' => __( 'Введите заголовок', 'redux-framework-demo' ),
49 'desc' => __( '', 'redux-framework-demo' ),
50 'default' => '',
51 ),
52
53 array(
54 'id' => 'main-textarea',
55 'type' => 'textarea',
56 'title' => __( 'Основной контет - HTML поддерживается', 'redux-framework-demo' ),
57 'subtitle' => __( 'Введите основной контент', 'redux-framework-demo' ),
58 'desc' => __( '', 'redux-framework-demo' ),
59 'default' => '',
60 ),
61
62 array(
63 'id' => 'desc-text',
64 'type' => 'text',
65 'title' => __( 'Описание', 'redux-framework-demo' ),
66 'subtitle' => __( 'Введите описание', 'redux-framework-demo' ),
67 'desc' => __( '', 'redux-framework-demo' ),
68 'default' => '',
69 ),
70
71
72 array(
73 'id' => 'button-textarea',
74 'type' => 'textarea',
75 'title' => __( 'Ваша кнопка - HTML поддерживается', 'redux-framework-demo' ),
76 'subtitle' => __( 'Введите код вашей кнопки', 'redux-framework-demo' ),
77 'desc' => __( '', 'redux-framework-demo' ),
78 'default' => '',
79 ),
80
81 array(
82 'id' => 'title_h2',
83 'type' => 'text',
84 'title' => __( 'Подзаголовок H2', 'redux-framework-demo' ),
85 'subtitle' => __( 'Введите подзаголовок', 'redux-framework-demo' ),
86 'desc' => __( '', 'redux-framework-demo' ),
87 'default' => '',
88 ),
89
90 )
91 ) );
92
93 // -> START Typography
94 Redux::setSection( $opt_name, array(
95 'title' => __( 'Typography', 'redux-framework-demo' ),
96 'id' => 'typography',
97 'desc' => __( 'For full documentation on this field, visit: ', 'redux-framework-demo' ) . '<a href="//docs.reduxframework.com/core/fields/typography/" target="_blank">docs.reduxframework.com/core/fields/typography/</a>',
98 'icon' => 'el el-font',
99 'fields' => array(
100 array(
101 'id' => 'opt-typography-body',
102 'type' => 'typography',
103 'title' => __( 'Body Font', 'redux-framework-demo' ),
104 'subtitle' => __( 'Specify the body font properties.', 'redux-framework-demo' ),
105 'google' => true,
106 'output' => array('h1, h2, h3, h4'),
107 'default' => array(
108 'color' => '#dd9933',
109 'font-size' => '30px',
110 'font-family' => 'Arial,Helvetica,sans-serif',
111 'font-weight' => 'Normal',
112 ),
113 ),
114 array(
115 'id' => 'opt-typography',
116 'type' => 'typography',
117 'title' => __( 'Typography h2.site-description', 'redux-framework-demo' ),
118 //'compiler' => true, // Use if you want to hook in your own CSS compiler
119 //'google' => false,
120 // Disable google fonts. Won't work if you haven't defined your google api key
121 'font-backup' => true,
122 // Select a backup non-google font in addition to a google font
123 //'font-style' => false, // Includes font-style and weight. Can use font-style or font-weight to declare
124 //'subsets' => false, // Only appears if google is true and subsets not set to false
125 //'font-size' => false,
126 //'line-height' => false,
127 //'word-spacing' => true, // Defaults to false
128 //'letter-spacing'=> true, // Defaults to false
129 //'color' => false,
130 //'preview' => false, // Disable the previewer
131 'all_styles' => true,
132 // Enable all Google Font style/weight variations to be added to the page
133 'output' => array( '.site-description' ),
134 // An array of CSS selectors to apply this font style to dynamically
135 'compiler' => array( 'site-description-compiler' ),
136 // An array of CSS selectors to apply this font style to dynamically
137 'units' => 'px',
138 // Defaults to px
139 'subtitle' => __( 'Typography option with each property can be called individually.', 'redux-framework-demo' ),
140 'default' => array(
141 'color' => '#333',
142 'font-style' => '700',
143 'font-family' => 'Abel',
144 'google' => true,
145 'font-size' => '33px',
146 'line-height' => '40px'
147 ),
148 ),
149 )
150 ) );
151 ?>
152
1536. в theme-option.php меняем глобальную перменную $opt_name = "redux_demo"; на $opt_name = "redux_int"; //#13
1547. Вытаскиваем в header.php переменную $redux_init;
155<?php global $redux_int; ?>
156
157
158Пример инеграции ссылки
159
160//esc_url защищает ссылку от вредоносного кода
161
162 <?php $custom_logo = $redux_int2['int2-logo']['url'];?>
163
164 <a href="<?php echo home_url("/"); ?>"><?php if($custom_logo){ ?>
165 <img src="<?php echo esc_url($custom_logo); ?>" alt="" />
166 <?php } ?></a>
167</div>
168
169Пример интеграции телефона и email
170
171//esc_attr защищает переменную от вредоносного кода
172
173<div class="contacts">
174 <?php if($redux_int2['header-phone']) { ?><span><i class="fa fa-mobile"></i><?php echo esc_attr($redux_int2['header-phone']) ?></span><?php } ?>
175 <?php if($redux_int2['header-email']) { ?> <span><i class="fa fa-envelope"></i><?php echo esc_attr($redux_int2['header-email']) ?></span><?php } ?> //esc_attr защита от вредоносного кода
176</div>