Wordpress like shortcodes for Laravel 5, 6, 7, 8, and 9

v1.0.24 2023-02-17 16:53 UTC


Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads StyleCI

WordPress like shortcodes for Laravel 5.x

[b class="bold"]Bold text[/b]

  [tab]Tab 1[/tab]
  [tab]Tab 2[/tab]

[user id="1" display="name"]

If you are looking for Laravel 4.2, see: https://github.com/patrickbrouwers/Laravel-Shortcodes


Via Composer

$ composer require "webwizo/laravel-shortcodes:1.0.*"

After updating composer, add the ServiceProvider to the providers array in config/app.php



You can use the facade for shorter code. Add this to your aliases:

'Shortcode' => Webwizo\Shortcodes\Facades\Shortcode::class,

The class is bound to the ioC as shortcode

$shortcode = app('shortcode');



To enable the view compiling features:

return view('view')->withShortcodes();

This will enable shortcode rendering for that view only.

Enable through class


Disable through class


Disabling some views from shortcode compiling

With the config set to true, you can disable the compiling per view.

return view('view')->withoutShortcodes();

Default compiling

To use default compiling:


Strip shortcodes from rendered view.

return view('view')->withStripShortcodes();

Strip shortcode through class


Registering new shortcodes

Create a new ServiceProvider where you can register all the shortcodes.

php artisan make:provider ShortcodesServiceProvider

After defining shortcodes, add the ServiceProvider to the providers array in config/app.php




Shortcodes can be registered within ShortcodesServiceProvider with a callback:

php artisan make:provider ShortcodesServiceProvider

ShortcodesServiceProvider.php Class File

<?php namespace App\Providers;

use App\Shortcodes\BoldShortcode;
use Illuminate\Support\ServiceProvider;
use Shortcode;

class ShortcodesServiceProvider extends ServiceProvider
     * Bootstrap the application services.
     * @return void
    public function boot()

     * Register the application services.
     * @return void
    public function register()
        Shortcode::register('b', BoldShortcode::class);
        Shortcode::register('i', 'App\Shortcodes\ItalicShortcode@custom');

Default class for BoldShortcode

You can store each shortcode within their class app/Shortcodes/BoldShortcode.php

namespace App\Shortcodes;

class BoldShortcode {

  public function register($shortcode, $content, $compiler, $name, $viewData)
    return sprintf('<strong class="%s">%s</strong>', $shortcode->class, $content);

Class with custom method

You can store each shortcode within their class app/Shortcodes/ItalicShortcode.php

namespace App\Shortcodes;

class ItalicShortcode {

  public function custom($shortcode, $content, $compiler, $name, $viewData)
    return sprintf('<i class="%s">%s</i>', $shortcode->class, $content);

Register helpers

If you only want to show the html attribute when the attribute is provided in the shortcode, you can use $shortcode->get($attributeKey, $fallbackValue = null)

class BoldShortcode {

  public function register($shortcode, $content, $compiler, $name, $viewData)
    return '<strong '. $shortcode->get('class', 'default') .'>' . $content . '</strong>';

Change log

Please see CHANGELOG for more information what has changed recently.


Please see CONTRIBUTING and CONDUCT for details.


If you discover any security related issues, please email webwizo@gmail.com instead of using the issue tracker.


Support me

Buy Me A Coffee


The MIT License (MIT). Please see License File for more information.