Git Product home page Git Product logo

wp-register's Introduction

PHP WordPress Register

Latest Stable Version License

Versión en español

Register, minify and unify CSS and JavaScript resources in WordPress.



Requirements

This library is supported by PHP versions 5.6 or higher and is compatible with HHVM versions 3.0 or higher.

Installation

The preferred way to install this extension is through Composer.

To install WP_Register library, simply:

composer require josantonius/wp-register

The previous command will only install the necessary files, if you prefer to download the entire source code you can use:

composer require josantonius/wp-register --prefer-source

You can also clone the complete repository with Git:

git clone https://github.com/josantonius/wp-register.git

Or install it manually:

Download WP_Register.php:

wget https://raw.githubusercontent.com/josantonius/wp-register/master/src/class-wp-register.php

Available Methods

Available methods in this library:

- Add scripts or styles

WP_Register::add($type, $data);
Attribute Description Type Required Default
$type 'script' or 'style' string Yes
Attribute key Description Type Required Default
$data Settings array Yes
name Unique ID string Yes
url Url to file string Yes
place 'admin' or 'front' string No 'front'
deps Dependences array No []
version Version string No false
footer Only for scripts - Attach in footer boolean No true
params Only for scripts - Params available in JS array Yes []
media Only for styles - Media string No ''

@return (boolean)

- Sets whether to merge the content of files into a single file

WP_Register::unify($id, $params, $minify);
Attribute Description Type Required Default
$id Action hook name string Yes
$params Path urls mixed Yes
$minify Minimize file content boolean No false

@return (boolean true)

- Check if a particular style or script has been added to be enqueued

WP_Register::is_added($type, $name);
Attribute Description Type Required Default
$type 'script' or 'style' string Yes
$name Script or style ID string Yes

@return (boolean)

- Remove before script or style have been registered

WP_Register::remove($type, $name);
Attribute Description Type Required Default
$type 'script' or 'style' string Yes
$name Script or style ID string Yes

@return (boolean true)

Quick Start

To use this library with Composer:

require __DIR__ . '/vendor/autoload.php';

use Josantonius\WP_Register;

Or If you installed it manually, use it:

require_once __DIR__ . '/class-wp-register.php';

use Josantonius\WP_Register\WP_Register;

Usage

Example of use for this library:

- Add script

WP_Register::add('script', [

    'name'  => 'HTML_script',
    'url'   => 'http://josantonius.com/js/html5.js'
]);
WP_Register::add('script', [

    'name'    => 'NavigationScript',
    'url'     => 'http://josantonius.com/js/navigation.js',
    'place'   => 'admin',
    'deps'    => ['jquery'],
    'version' => '1.1.3',
    'footer'  => true,
    'params'  => ['date' => date('now')],
]);

Additionally, a nonce is created for each script using its name. In this example, it will be accessible from JavaScript using NavigationScript.nonce.

wp_verify_nonce($nonce, 'NavigationScript');

In the case of scripts created from plugins, the path of the plugin directory is saved as a parameter. In this example, it will be accessible from JavaScript using NavigationScript.pluginUrl.

- Add style

WP_Register::add('style', [

    'name'  => 'EditorStyle',
    'url'   => 'http://josantonius.com/js/editor-style.css'
]);
WP_Register::add('style', [

    'name'    => 'DefaultStyle',
    'url'     => 'http://josantonius.com/js/style.css',
    'place'   => 'admin',
    'deps'    => [],
    'version' => '1.1.3',
    'media'   => 'all'
])

- Unify

WP_Register::unify('UniqueID', 'http://josantonius.com/min/');

- Unify and minify

WP_Register::unify('UniqueID', 'http://josantonius.com/min/', true);

- Unify specifying different url paths for styles and scripts

WP_Register::unify('UniqueID', [

    'styles'  => 'http://josantonius.com/min/css/',
    'scripts' => 'http://josantonius.com/min/js/'
]);

- Unify and minify specifying different url paths for styles and scripts

WP_Register::unify('UniqueID', [

    'styles'  => 'http://josantonius.com/min/css/',
    'scripts' => 'http://josantonius.com/min/js/'
    
], true);

- Check if a particular style or script has been added to be registered

WP_Register::is_added('script', 'HTML_script');

WP_Register::is_added('script', 'NavigationScript');

WP_Register::is_added('style', 'EditorStyle');

WP_Register::is_added('style', 'DefaultStyle');

- Remove before script or style have been enqueued

WP_Register::remove('script', 'HTML_script');

WP_Register::remove('script', 'NavigationScript');

WP_Register::remove('style', 'EditorStyle');

WP_Register::remove('style', 'DefaultStyle');

Tests

To run tests you just need composer and to execute the following:

git clone https://github.com/josantonius/wp-register.git

cd WP_Register

bash bin/install-wp-tests.sh wordpress_test root '' localhost latest

composer install

Run unit tests with PHPUnit:

composer phpunit

Run WordPress code standard tests with PHPCS:

composer phpcs

Run PHP Mess Detector tests to detect inconsistencies in code style:

composer phpmd

Run all previous tests:

composer tests

Sponsor

If this project helps you to reduce your development time, you can sponsor me to support my open source work 😊

License

This repository is licensed under the MIT License.

Copyright © 2017-2022, Josantonius

wp-register's People

Contributors

josantonius avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  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.