Site Options plugin

WP Site Options  — это простой и бесплатный инструмент для быстрого программного создания настроек для вашего сайта. Настройки располагаются в меню Настройки — Чтение.

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

    add_action( 'init', 'custom_site_options', 10 );
    function custom_site_options(){
        global $wpto;
	if ( $wpto )
	$wpto->fields = array ( 
	  'section_one'	=> array( array( 'First Settings', 'here description' ), array(
		'f_number' => array( 'number', 'A Number' ),
		'f_text'   => array( 'text', 'Simple text' ),
	  )),
	  'section_two'	=> array( array( 'Additional settings', 'here wow description' ), array(
		'f_gallery' => array( 'gallery', 'Awesome gallery' ),
		'f_chbox'   => array( 'checkbox', 'Are u checked?' ),
	  )),
	);
    }

Вы можете использовать другой хук для подключения настроек вплоть до ‘admin_init’. В случае использования ‘admin_init’ максимальный приоритет подключения к хуку — 49.

Доступ к настройкам в шаблоне

        global $wpto;
        echo $wpto->getOption( 'section_one::f_text' ) ;

Поддерживаемые типы данных

Вам доступны следующие типы:

Значение по умолчанию

Для еще не установленных значений (или значений, равных пустой строке) вы можете определить значение по умолчанию.

$wpto->fields = array ( 
  'section_one'	=> array( array( 'First Settings', 'here description' ), array(
       'f_number'	   => array( 'number', 'A Number', array( 'default' => 100 ) ),
   ))
);

Дополнительные свойства

Для полей, требующих дополнительные параметры, вы можете их указать.

Например, параметр step для поля типа number.

$wpto->fields = array ( 
  'section_one'	=> array( array( 'First Settings', 'here description' ), array(
       'f_number'	   => array( 'number', 'A Number', array( 'step' => 10 ) ),
   ))
);

Для каждого вашего поля, выводимого в администраторской части, вы можете задать общие дополнительные параметры. Например, задать свой css-класс.

$wpto->fields = array ( 
  'section_one'	=> array( array( 'First Settings', 'here description' ), array(
       'f_text'	   => array( 'text', 'Simple text', array( 'default' => 'FooFoo', 'class' => 'custom_class' ) ), )) );

Кроме того, вы можете задать любые особые атрибуты тега input для вывода на странице настроек. Например, зададим текстовому полю дополнительный атрибут ‘data-foo’ со значением ‘bar’. Используем для этого элемент ‘attrs’:

$wpto->fields = array ( 
  'section_one'	=> array( array( 'First Settings', 'here description' ), array(
       'f_text'	   => array( 'text', 'Simple text', array( 'default' => 'FooFoo', 'class' => 'custom_class', 'attrs' => array( 'data-foo' => 'bar' ) ) ), )) );

Теперь поле input выглядит так:

< input type="text"     name="wpto_options[section_one][f_text]"      type="text"      value="FooFoo"      class="section_one-f_text wpto-input custom_class"      id="section_one-f_text"      oninvalid="setCustomValidity( 'Please, check' )"      data-foo="bar"  />  

Однако, используя параметр ‘attrs’, вы не можете переопределять уже заданные атрибуты.

Нет подходящего типа

Используйте фильтр ‘wpto_echo_custom_field’, если вы хотите определить свой собственный тип данных и задать вывод соответствующего тега input.

Text

Поле не имеет индивидуальных атрибутов.

    add_action( 'init', 'custom__site_options', 10 );
    function custom__site_options(){
        global $wpto;
        if ( $wpto )
        $wpto->fields = array ( 
            'section_one'    =>    array( array( 'First Settings', 'here description' ), array(
                'f_text'    => array( 'text', 'Simple text' ),
            )),

        );    
    }

E-mail

Поле не имеет индивидуальных атрибутов.

    add_action( 'init', 'custom__site_options', 10 );
    function custom__site_options(){
        global $wpto;
        if ( $wpto )
        $wpto->fields = array ( 
            'section_one'    =>    array( array( 'First Settings', 'here description' ), array(
                'f_email'    => array( 'email', 'Your email' ),
            )),

        );    
    }

Wysiwyg

Поле не имеет индивидуальных атрибутов.

    add_action( 'init', 'custom__site_options', 10 );
    function custom__site_options(){
        global $wpto;
        if ( $wpto )
        $wpto->fields = array ( 
            'section_one'    =>    array( array( 'First Settings', 'here description' ), array(
                'f_wys'    => array( 'wysiwyg', 'WisualEdit text' ),
            )),

        );    
    }

Checkbox

Поле не имеет индивидуальных атрибутов.

    add_action( 'init', 'custom__site_options', 10 );
    function custom__site_options(){
        global $wpto;
        if ( $wpto )
        $wpto->fields = array ( 
            'section_one'    =>    array( array( 'First Settings', 'here description' ), array(
                'f_chb'    => array( 'checkbox', 'Checked?' ),
            )),

        );    
    }

Textarea

Поле не имеет индивидуальных атрибутов.

    add_action( 'init', 'custom__site_options', 10 );
    function custom__site_options(){
        global $wpto;
        if ( $wpto )
        $wpto->fields = array ( 
            'section_one'    =>    array( array( 'First Settings', 'here description' ), array(
                'f_ta'    => array( 'textarea', 'Textarea text' ),
            )),

        );    
    }

Number

Поле имеет индивидуальный атрибут step.

    add_action( 'init', 'custom__site_options', 10 );
    function custom__site_options(){
        global $wpto;
        if ( $wpto )
        $wpto->fields = array ( 
            'section_one'    =>    array( array( 'First Settings', 'here description' ), array(
                'f_number'    => array( 'number', 'Any digits', array( 'step' => 0.1 ) ),
            )),

        );    
    }

Select

Поле имеет индивидуальные атрибуты.

options — массив вариантов выбора.

multiplefalse или true.

    add_action( 'init', 'custom__site_options', 10 );
    function custom__site_options(){
        global $wpto;
        if ( $wpto )
        $wpto->fields = array ( 
            'section_one'    =>    array( array( 'First Settings', 'here description' ), array(
                'f_select'    => array( 'select', 'Selector', array( 
                    'options' => array(
                        array( 'value' => '', 'text' => 'Choose', 'attrs' => array( 'disabled' => 'disabled' ) ),
                        array( 'value' => 'one', 'text' => 'First' ), 
                        array( 'value' => 'two', 'text' => 'Second' ), 
                        array( 'value' => 'three', 'text' => 'Third' )
                    ),
                    'multiple' => true,
                    'default' => 'two'
                ) ),
            )),

        );    
    }

Также как и для всех типов полей, здесь доступен атрибут default.

Photo

Поле не имеет индивидуальных атрибутов.

    add_action( 'init', 'custom__site_options', 10 );
    function custom__site_options(){
        global $wpto;
        if ( $wpto )
        $wpto->fields = array ( 
            'section_one'    =>    array( array( 'First Settings', 'here description' ), array(
                'f_photo'    => array( 'photo', 'Select image' ),
            )),

        );    
    }

Доступ к значению поля

            global $wpto;
            echo wp_get_attachment_image( $wpto->getOption('section_two::f_photo') );

Поле не имеет индивидуальных атрибутов.

    add_action( 'init', 'custom__site_options', 10 );
    function custom__site_options(){
        global $wpto;
        if ( $wpto )
        $wpto->fields = array ( 
            'section_one'    =>    array( array( 'First Settings', 'here description' ), array(
                'f_gallery'    => array( 'gallery', 'Select images' ),
            )),

        );    
    }

Доступ к значению поля

            global $wpto;
            $gallery = $wpto->getOption('section_two::f_gallery');
            foreach ( $gallery as $one )
                echo wp_get_attachment_image( $one );

Colorpicker

Поле не имеет индивидуальных атрибутов.

    add_action( 'init', 'custom__site_options', 10 );
    function custom__site_options(){
        global $wpto;
        if ( $wpto )
        $wpto->fields = array ( 
            'section_one'    =>    array( array( 'First Settings', 'here description' ), array(
                'f_color'    => array( 'color', 'Select color' ),
            )),

        );    
    }

 

Share this post



Отправить ответ

Оставьте первый комментарий!