Skip to content

Latest commit

 

History

History
150 lines (123 loc) · 3.4 KB

samples.md

File metadata and controls

150 lines (123 loc) · 3.4 KB

Samples

Add code to your theme's functions.php.

Create an options page with 2 tabs

function add_custom_options_pages( $pages ) {
    $myPages = array(
        array(
            'id' => 'my-options-page',
            'name' => 'My options page',
            'tabs' => array(
                array(
                    'id' => 'main',
                    'name' => 'Main',
                ),
                array(
                    'id' => 'inner',
                    'name' => 'Inner',
                ),
            ),
        ),
    );

    return array_merge( $pages, $myPages );
}

add_filter( 'alch_options_pages', 'add_custom_options_pages' );

Simple text field

The following will add a text field to the 'My options page'. If you don't specify a tab the field is going to render in each of them.

function add_custom_options( $options ) {
    $myOptions = array(
        array(
            'id' => 'text-option',
            'type' => 'text',
            'place' => array(
                'page' => 'my-options-page',
            ),
        ),
    );

    return array_merge( $options, $myOptions );
}

add_filter( 'alch_options', 'add_custom_options' );

To restrict the field to a particular tab use the tab key.

function add_custom_options( $options ) {
    $myOptions = array(
        array(
            'id' => 'text-option',
            'type' => 'text',
            'place' => array(
                'page' => 'my-options-page',
                'tab' => 'inner',
            ),
        ),
    );

    return array_merge( $options, $myOptions );
}

add_filter( 'alch_options', 'add_custom_options' );

With a repeater field in one of two tabs

function add_custom_repeaters( $repeaters ) {
	$myRepeaters = array(
		array(
			'id' => 'my-repeater',
			'fields' => array(
				array(
					'title' => 'My editor field',
					'id' => 'my-editor-field',
					'type' => 'editor',
				),
			),
		),
	);

	return array_merge( $repeaters, $myRepeaters );
}

add_filter( 'alch_repeaters', 'add_custom_repeaters' );


function add_custom_options( $options ) {
    $myOptions = array(
        array(
            'id' => 'text-option',
            'type' => 'text',
            'place' => array(
                'page' => 'my-options-page',
            ),
        ),
        array(
            'id' => 'repeater-option',
            'type' => 'repeater:my-repeater',
            'place' => array(
                'page' => 'my-options-page',
            ),
        ),
    );

    return array_merge( $options, $myOptions );
}

add_filter( 'alch_options', 'add_custom_options' );

Network options

The config is almost exactly the same as for regular options, only you should use the alch_network_options action instead of alch_options. E.g.

function add_custom_network_options( $options ) {
    $myOptions = array(
        array(
            'title' => 'My slider field title',
            'id' => 'slider-option',
            'desc' => 'Short description for the field',
            'place' => array(
                'page' => 'my-network-page',
                'tab' => 'tab-1'
            ),
            'type' => 'slider',
            'values' => array(
                'min' => 0,
                'max' => 200,
                'step' => 5,
            ),
        ),
    );

    return array_merge( $options, $myOptions );
}

add_action( 'alch_network_options', 'add_custom_network_options' );