Skip to content
WordPress plugin that allows you to use if-elseif-else conditions in your content
PHP Shell JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
tests
.distignore
.editorconfig
.gitignore
.phpcs.xml.dist
.travis.yml
Gruntfile.js
LICENSE
README.md
if-elseif-else-shortcode.php
package.json
phpunit.xml.dist
readme.txt

README.md

if-elseif-else Shortcode

Allows you to use if-elseif-else conditions in your editor content via an [if] shortcode.

Description

This plugin adds a new [if] shortcode that allows you to use if-elseif-else shortcodes in your editor content.

[if is_super_admin]
    Hello Admin
[elseif is_user_logged_in]
    Hello registered user
[else]
    Hello, please log in
[/if]

The following callables are allowed by default.

comments_open
is_404
is_admin
is_archive
is_author
is_category
is_day
is_feed
is_front_page
is_home
is_month
is_page
is_search
is_single
is_singular
is_sticky
is_super_admin
is_tag
is_tax
is_time
is_user_logged_in
is_year
pings_open

To allow other callables you can use the if_elseif_else_shortcode_allowed_callables filter.

<?php
add_filter( 'if_elseif_else_shortcode_allowed_callables', function( $whitelist ) {
	$whitelist[] = 'your_callable_here';

	return $whitelist;
});

Installation

  1. Upload plugin to the /wp-content/plugins/ directory
  2. Activate the plugin through the 'Plugins' menu in WordPress

Frequently Asked Questions

What callables are supported?

String callables are supported:

  • Function names: is_user_logged_in
  • Static class method calls (>=PHP 5.2.3): MyClass::myCallbackMethod
[if is_user_logged_in]
    Hello user
[elseif UserAccessControl::is_member_logged_in]
    Hello member
[else]
    Hello, please log in
[/if]

Note: in the above example, you would need to add UserAccessControl::is_member_logged_in to the allowed callables whitelist. You can do this using the if_elseif_else_shortcode_allowed_callables filter.

Can I pass parameters to callables?

Yes.

[if is_singular books]
	Related books here.
[/if]

If your callable accepts multiple parameters you can pass them in as a space separated string.

function is_garfield( $animal, $colour ) {
	return $animal === 'cat' && $colour === 'orange';
}

[if is_garfield cat orange]
	Yes, this is garfield.
[/if]

Changelog

0.1.0

  • Committed the plugin

Upgrade Notice

Testing

If you want to simplify the if_elseif_else_statement function or fix a bug, a WordPress test class exists for you to test your refactored code.

Install test framework and database

./bin/install-wp-tests.sh {db-name} {db-user} {db-pass} [db-host] [wp-version] [skip-database-creation]

Example

Run this from the plugin directory:

You can’t perform that action at this time.