Моя попытка создать универсальный кастомайзер темы на WP

Posted by

Для тех кто не знает, что это такое и с чем его едят могу дать краткое объяснение.  Кастомайзер – это специальный код или файл, который помогает задать вашей теме дополнительные настройки и тем самим предоставляет удобство конечному пользователю.  В этой записи я  прилагаю экземпляр такого файла, который вы сами сможете использовать  в повседневной рутине разработки. Вам будет достаточно подключить такой файл к своей теме с помощью php функции include.

Что содержит данный файл?

Так как настройки темы разбиты на секции то здесь содержится несколько секций содержащих поля соответственного назначения

Секция “Социальные сети”

  • Ссылка на профиль Vk
  • Ссылка на профиль Facebook
  • Ссылка на профиль Google+
  • Ссылка на профиль Twitter

Секция “Контактная информация”

  • Несколько полей с контактными телефонами (3 поля)
  • Поле адреса
  • Поле для ввода email

Секция “Баннеры”

  • 4 textarea блока для вставки кода баннеров

Чтобы код заработал, нужно либо добавить этот код в файл functions.php либо ещё лучше создать отдельный файл с этим кодом и подключить к functions.php.

<?php
/*
Список аргументов функции get_theme_mod(), которая выводит в теме указанную опцию
--- подробнее о функции: http://wp-kama.ru/function/get_theme_mod

----- Социальные сети -----
  vk_page - ссылка на профиль Vk
  tw_page - ссылка на профиль Twitter
  gp_page - ссылка на профиль Google
  fb_page - ссылка на профиль Facebook

----- Контактная информация -----
  setting_tel - контактный телефон 1
  setting_tel_2  - контактный телефон 2
  setting_tel_3  - контактный телефон 3
  setting_email - адрес электронной почты 
  setting_loc - физический адрес

----- Баннеры -----
  preim_1 - баннер 1
  preim_2 - баннер 2
  preim_3 - баннер 3
  preim_4 - баннер 4
*/

function kv_customize_register( $wp_customize ) {
 class Example_Customize_Textarea_Control extends WP_Customize_Control {
   public $ENGINE= 'textarea';
   public function render_content() {
     ?>
     <label>
       <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
       <textarea rows="5" style="width:100%;" <?php $this->link(); ?>><?php echo esc_textarea( $this->value() ); ?></textarea>
     </label>
     <?php
   }
 }

 //Создаем секции
 $wp_customize->add_section( 'section_social', array('title' => 'Социальные сети', 'priority' => 41) );
 $wp_customize->add_section( 'section_footer', array('title' => 'Контактная информация', 'priority' => 61) );
 $wp_customize->add_section( 'section_home', array('title' => 'Баннеры', 'priority' => 62) );
   // $wp_customize->add_section( 'section_header', array('title' => 'Логотип', 'priority' => 22) );

 //Добавляем настройки

   //----------Социальные сети ------------------------------------------------------------------------
 $wp_customize->add_setting( 'vk_page', array( 'default' => '', 'type' => 'theme_mod', 'capability' => 'edit_theme_options' ) );
 $wp_customize->add_setting( 'tw_page', array( 'default' => '', 'type' => 'theme_mod', 'capability' => 'edit_theme_options' ) );
 $wp_customize->add_setting( 'gp_page', array( 'default' => '', 'type' => 'theme_mod', 'capability' => 'edit_theme_options' ) );
 $wp_customize->add_setting( 'fb_page', array( 'default' => '', 'type' => 'theme_mod', 'capability' => 'edit_theme_options' ) );

 //--------------- Адрес телефоны  и почта ----------------------------------------------------------------------
  $wp_customize->add_setting( 'setting_tel', array( 'default' => '+ 38 044 34 99', 'type' => 'theme_mod', 'capability' => 'edit_theme_options' ) );  
  $wp_customize->add_setting( 'setting_tel_2', array( 'default' => '+ 38 044 34 99', 'type' => 'theme_mod', 'capability' => 'edit_theme_options' ) );  
  $wp_customize->add_setting( 'setting_tel_3', array( 'default' => '+ 38 044 34 99', 'type' => 'theme_mod', 'capability' => 'edit_theme_options' ) );
 $wp_customize->add_setting( 'setting_email', array( 'default' => '[email protected]', 'type' => 'theme_mod', 'capability' => 'edit_theme_options' ) );

 $wp_customize->add_setting( 'setting_loc', array( 'default' => 'Адрес','type' => 'theme_mod', 'capability' => 'edit_theme_options' ));
 $wp_customize->add_setting( 'settings_logo', array( 'default' => '/wp-content/themes/stimul-plus/img/new-store-1411394494.jpg','type' => 'theme_mod', 'capability' => 'edit_theme_options') );

 //--------------Баннеры---------------------------------------
 $wp_customize->add_setting( 'preim_1', array( 'default' => '','type' => 'theme_mod', 'capability' => 'edit_theme_options') );
 $wp_customize->add_setting( 'preim_2', array( 'default' => '','type' => 'theme_mod', 'capability' => 'edit_theme_options') );
 $wp_customize->add_setting( 'preim_3', array( 'default' => '','type' => 'theme_mod', 'capability' => 'edit_theme_options') );
 $wp_customize->add_setting( 'preim_4', array( 'default' => '','type' => 'theme_mod', 'capability' => 'edit_theme_options') );


//-------------Выводим поля ввода -----------------------------------------------------------------------------------------

//Ссылка на вконтакте
 $wp_customize->add_control( 'vk_page', array(
   'label' => 'Ссылка на профиль Вконтакте',
   'section' => 'section_social',
   'type' => 'text',
   'priority' => 1
   ) );
   //Ссылка на твиттер
 $wp_customize->add_control( 'tw_page', array(
   'label' => 'Ссылка на профиль Twiter',
   'section' => 'section_social',
   'type' => 'text',
   'priority' => 2
   ) );  
    //Ссылка на Google+
 $wp_customize->add_control( 'gp_page', array(
   'label' => 'Ссылка на профиль Google+',
   'section' => 'section_social',
   'type' => 'text',
   'priority' => 3
   ) );    
   //Ссылка на Google+
 $wp_customize->add_control( 'fb_page', array(
   'label' => 'Ссылка на профиль Facebook',
   'section' => 'section_social',
   'type' => 'text',
   'priority' => 4
   ) );


// загружаем лого в шапке
/* $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'settings_logo', array(
  'label' => 'Логотип сайта',
  'section' => 'section_header',
  'settings' => 'settings_logo',
  'priority' => 1
  ) ) );*/


  //Блок с преимуществами 1
 $wp_customize->add_control( new Example_Customize_Textarea_Control( $wp_customize, 'preim_1', array(
  'label' => 'Баннеры 1',
  'section' => 'section_home',
  'settings' => 'preim_1',
  ) ) ); 
  //Блок с преимуществами 2
 $wp_customize->add_control( new Example_Customize_Textarea_Control( $wp_customize, 'preim_2', array(
  'label' => 'Баннеры 2',
  'section' => 'section_home',
  'settings' => 'preim_2',
  ) ) );  
  //Блок с преимуществами 3
 $wp_customize->add_control( new Example_Customize_Textarea_Control( $wp_customize, 'preim_3', array(
  'label' => 'Баннеры 3',
  'section' => 'section_home',
  'settings' => 'preim_3',
  ) ) );  
  //Блок с преимуществами 4
 $wp_customize->add_control( new Example_Customize_Textarea_Control( $wp_customize, 'preim_4', array(
  'label' => 'Баннеры 4',
  'section' => 'section_home',
  'settings' => 'preim_4',
  ) ) );  

  //Адрес
 $wp_customize->add_control( new Example_Customize_Textarea_Control( $wp_customize, 'setting_loc', array(
  'label' => 'Адрес',
  'section' => 'section_footer',
  'settings' => 'setting_loc',
  ) ) );

   //телефон
 $wp_customize->add_control( 'setting_tel', array(
   'label' => 'Телефон 1',
   'section' => 'section_footer',
   'type' => 'text',
   'priority' => 3
   ) );   
   //телефон 2
 $wp_customize->add_control( 'setting_tel_2', array(
   'label' => 'Телефон 2',
   'section' => 'section_footer',
   'type' => 'text',
   'priority' => 3
   ) );  
   //телефон 2
 $wp_customize->add_control( 'setting_tel_3', array(
   'label' => 'Телефон 3',
   'section' => 'section_footer',
   'type' => 'text',
   'priority' => 3
   ) );

    //email
 $wp_customize->add_control( 'setting_email', array(
   'label' => 'E-mail',
   'section' => 'section_footer',
   'type' => 'text',
   'priority' => 3
   ) );
}
add_action( 'customize_register', 'kv_customize_register' );
?>

 

 

 

 

Поделиться:
Підписатися

Сповістити про





0 Ваш коментар

Вбудовані Відгуки
Переглянути всі коментарі