GithubHelp home page GithubHelp logo

wp-customizer's Introduction

WordPress Customizer Composer Package

A helper package for working with the WordPress Customizer

Installation

composer require horttcore/wp-customizer

Usage

Basics

<?php
use Horttcore\Customizer\Customize;

(new Customize)
    ->panel( __('My Panel', 'textdomain') )
        ->section( __('My Section', 'textdomain') )
            ->checkbox( 'my-checkbox', __('Checkbox', 'textdomain') )
            ->color( 'my-color', __('Color', 'textdomain') )
            ->file( 'my-file', __('File', 'textdomain') )
            ->image( 'my-image', __('Image', 'textdomain') )
            ->page( 'my-page', __('Page', 'textdomain') )
            ->radio( 'my-radio', __('Radio', 'textdomain'), ['option1' => 'Option 1', 'option2' => 'Option 2'] );
            ->select( 'my-select', __('Select', 'textdomain'), ['option1' => 'Option 1', 'option2' => 'Option 2'] );
            ->text( 'my-text', __('Text', 'textdomain') )
            ->textarea( 'my-textarea', __('Textarea', 'textdomain') )
            ->url( 'my-url', __('Url', 'textdomain') )
    ->register();

Advanced

Save as option instead of theme_mod

<?php
use Horttcore\Customizer\Customize;

(new Customize)
    ->panel( __('My Panel', 'textdomain')  )
        ->section( __('My Section', 'textdomain') )
            ->text( 'my-text', __('My Text', 'textdomain'), ['type' => 'option'] )
            ->register();

Check for a capability

<?php
use Horttcore\Customizer\Customize;

(new Customize)
    ->panel( 'My Panel' )
        ->section( __('My Section', 'textdomain') )
            ->text( 'my-text', __('My Text', 'textdomain'), ['capability' => 'edit_posts'] )
            ->register();

Add a description

<?php
use Horttcore\Customizer\Customize;

(new Customize)
    ->panel( 'My Panel' )
        ->section( 'My Section' )
            ->text( 'my-text', 'Text', [], ['description' => __('This is awesome', 'textdomain')] )
            ->register();

Retrieving data

<?php
$mod = get_theme_mod('my-text');

Adding a setting in an existing panel

<?php
(new Customize)
    ->image( 'mobile logo', __('Mobile Logo', 'textdomain'), [], [
        'section' => 'title_tagline',
        'priority' => 1
    ] )
    ->register();

Changelog

v2.1.0

  • Adding support for including elements in existing panels

v2.0.0

  • Rename Manager to Customize

v1.0.0

  • Initial release

wp-customizer's People

Contributors

horttcore avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.