Shortcodes is a PHP library that will help parse WordPress/BBCode style shortcodes. It can turn something like this...
[style color=#FF0000]Red Text[/style]
into this...
<span style="color:#FF0000;">Red Text</span>
The output is not predefined, it is up to you to define how the output is handled. See below for examples.
composer require jaybizzle/shortcodes
Let's take a simple example. We want to create a Shortcode for video
elements. We want to be able to write something like this...
[video title="My Awesome Video" videoID=345 width=320 height=240]
and make it output something like this...
<video width="320" height="240" controls>
<source src="/videos/video-345.mp4" type="video/mp4">
<source src="/videos/video-345.ogg" type="video/ogg">
Your browser does not support the video tag.
</video>
Firstly, we need to create a class that is going to handle the parsed Shortcode and its attributes. We create a new class as follows...
<?php
namespace App\Shortcodes;
use Jaybizzle\Shortcodes\Shortcode;
class VideoShortcode extends Shortcode
{
public static $shortcode = 'video';
public function parse()
{
// All shortcode attributes will be available in $this->attr
// i.e. given the example above...
// $this->attr['title']
// $this->attr['videoID']
// $this->attr['width']
// $this->attr['height']
}
}
Next, we need to add this Shortcode parse class to the Shortcodes library like this...
<?php
namespace App\Libraries;
use App\Shortcodes\VideoShortcode;
use Jaybizzle\Shortcodes\Shortcodes;
class MyClass
{
public function index()
{
$shortcodes = new Shortcodes
$shortcodes->add(VideoClass::class);
}
}