WordPress Shortcode – Compare Values


With both Profile Builder and WordPress Creation Kit plugins using Mustache as their template system for things like User Listing and Swift Templates, we need at times the possibility to compares different values.

This however, is not possible in Mustache. So a shortcode to compare values comes to the rescue.

Compare Shortcode

Download Compare Shortcode

How to use

[compare val1="test" val2="test" operator="=="]
    List if the values is the same?
// Inside Profile Builder or WordPress Creation Kit you'll probably use it like so:
[compare val1="{{my-custom-field-2}}" val2="Yes" operator="=="]
    List if the values is the same?

Code wise, it’s fairly straight forward. You can also see what operators are supported:

 * Compare shortcode. Tags: shortcode, compare,
 * Usage:
	[compare val1="test" val2="test" operator="=="]
		List if the values is the same?
add_shortcode( 'compare', 'wppbc_compare_shortcode' );
function wppbc_compare_shortcode( $atts, $content ){
		$out = shortcode_atts(	array( 'val1' => '', 'val2' => '', 'operator' => ''), $atts )
	// quick fix for WordPress bug: https://core.trac.wordpress.org/ticket/29658
	foreach($out as $key => $value){
		$out[$key] = str_replace('”', '', $value );
	$l = $out['val1'];
	$r = $out['val2'];
	$operators = array(
		'=='    => create_function('$l, $r', 'return $l == $r;'),
		'==='   => create_function('$l, $r', 'return $l === $r;'),
		'!='    => create_function('$l, $r', 'return $l != $r;'),
		'<'     => create_function('$l, $r', 'return $l < $r;'),
		'>'     => create_function('$l, $r', 'return $l > $r;'),
		'<='    => create_function('$l, $r', 'return $l <= $r;'),
		'<='    => create_function('$l, $r', 'return $l <= $r;'),
		'>='    => create_function('$l, $r', 'return $l >= $r;'),
		''      => create_function('$l, $r', 'return $l == $r;'),
	if ( !array_key_exists($out['operator'], $operators ) ){
		return '<p>The compare operator <strong style="padding:0 10px;">' . $out["operator"] . '</strong> is not recognized. Please try: == , ===, !=, <, >, <=, >=';
	$bool = $operators[$out['operator']]($l, $r);
	if( $bool ) {
		return $content;

WordPress Passwordless Login


WordPress Passwordless Login is a plugin that allows your users to login without a password. It’s as simple as installing it and adding a shortcode in a page or widget.

Download Passwordless Login from WordPress.org

These past months have been filled with security reports, articles and 0-day exploits. It’s fair to say they had little to do with WordPress, but that’s besides the point. What’s certain is that we’re now living in an increasingly technologically complex world and it’s getting harder and harder to keep everything safe and secure.

This article draws it’s inspiration from the Passwordless authentication: Secure, simple, and fast to deploy, an article published something like two weeks ago. It explains how to get passwordless login for node.js but more importantly, why you want passwordless login.

Username + passwords will probably not be replaced anytime soon. But that doesn’t mean we can’t come up with alternatives.

Everybody has a “friend” that uses the same password or some variation: the pass with numbers in it, the pass with capital letters, the pass with special characters in it, the pass with the year at the end in it, etc.

Lately there have been great solutions involving one time passwords like Persona from Mozilla. Whenever a user wants to log in, they receive a short-lived, one-time link with a token via email or text message.

There is also Clef that uses a QR code and also supports WordPress via a plugin

But all these are third party so let’s look into building something native to WordPress.

Read more

WordPress Minimum Password Length and Password Strength Meter for User Registration

I’m quite concerned for the security of my site and content if I allow users to sign up with weak passwords.

That’s something we hear a lot from website owners. Chances are, if you run a WordPress membership site that allows user registration, your primary security concern is NOT to allow users to sign-up with weak passwords.

A short or weak password is one of the most used security breach by people trying to hack your site, so you try to avoid that at all costs. Cracking one password may sometimes be enough to lose access to sections or even the whole website, which puts your content, revenue and work in danger.

After hours of research you’ve probably realized that most of the plugins available go only half way. While some offer increased security by allowing you to set a minimum password length, they do NOT posses all the features you would need from a user registration plugin.

On the other side, even though there is a significant list of plugins out there that can help you with some aspects of the user registration part, the big majority fall short when it comes to security.

Wouldn’t it be nice to have an all in one solution that can help you with both the front-end user registration part, but also be able to set security restrictions when it comes to registration forms?

Read more

WordPress Creation Kit 2.0.6 and WordPress 3.9

Due to an overconfidence on our part regarding WordPress updates and compatibility issues with our plugins, we failed to test WordPress Creation Kit 2.0.5 with WordPress 3.9 before the official launch of WordPress 3.9.

We are sorry. We should have known better and we will make a habit out of testing our plugins with future versions of WordPress before they are released.


Since WP 3.9 updated TinyMCE to the latest version (v.4) and our WYSIWYG editor was still using v.3, trying to initiate the two together causes JavaScript errors and the WordPress Editor and our own WYSIWYG Editor stopped working.

Also, due to the way WordPress loads TinyMCE v.4, we’re not able to use it any longer for our own WYSIWYG editor (the main reasons it took us a full day to issue the update). That is the reason why from version WCK 2.0.6 we’ve switched to CKEditor for the WCK WYSIWYG editor.

You can download the latest version of WordPress Creation Kit from:

  • wordpress.org
  • Your Account page
  • Or wait for an automatic update to be available for both the Free or the Pro, Hobbyist & Lifetime versions

Show Custom Fields in WordPress

Show Custom Fields in Theme

How to show custom fields in WordPress is one of the hardest thing to understand by non-technical users.

By default, WordPress gives you the possibility to add custom fields directly from the UI.

There are also a lot of plugins that let you add advanced custom fields like inputs, check-boxes, selects, etc.

However, almost all of those solutions fall short when it comes when you want to show custom fields in your template.

Show Custom Fields Using Code

The default way to show custom fields in WordPress would be to:

  1. Open the single.php or page.php template file from your theme (via FTP or locally)
  2. Find the_content function so you can list your custom fields after the actual content of the post or page
  3. Use the get_post_meta function to list custom fields

It doesn’t sound to complicated, but you’ve lost a non-technical user at opening single.php

This is how your page.php could look if you wanted to show two custom fields, book title and book ISBN code.

< ?php
 * The template for displaying all pages
 * This is the template that displays all pages by default.
 * @subpackage Twenty_Thirteen
get_header(); ?>
	<div id="primary" class="content-area">
		<div id="content" class="site-content" role="main">
			< ?php /* The loop */ ?>
			< ?php while ( have_posts() ) : the_post(); ?>
				<article id="post-<?php the_ID(); ?>" < ?php post_class(); ?>>
					<header class="entry-header">
						<h1 class="entry-title">< ?php the_title(); ?></h1>
					</header><!-- .entry-header -->
					<div class="entry-content">
						< ?php the_content(); ?>
<!-- Let's show our custom fields here -->						
< ?php 
	$my_book_title = get_post_meta( get_the_ID(), 'book_title', true);
	$my_book_isbn = get_post_meta( get_the_ID(), 'book_isbn', true);
	if( ! empty( $my_book_title ) ) {
		echo '<h3>Book Title: ' . $my_book_title . '<h3>';
		echo '<p>ISBN: ' . $my_book_isbn . '</p>';
<!-- End showing our custom fields here -->						
						< ?php wp_link_pages( array( 'before' => '<div class="page-links"><span class="page-links-title">' . __( 'Pages:', 'twentythirteen' ) . '</span>', 'after' => '</div>', 'link_before' => '<span>', 'link_after' => '</span>' ) ); ?>
					</h3></div><!-- .entry-content -->
					<footer class="entry-meta">
						< ?php edit_post_link( __( 'Edit', 'twentythirteen' ), '<span class="edit-link">', '' ); ?>
					</footer><!-- .entry-meta -->
				</article><!-- #post -->
				< ?php comments_template(); ?>
			< ?php endwhile; ?>
		</div><!-- #content -->
	</div><!-- #primary -->
< ?php get_sidebar(); ?>
< ?php get_footer(); ?>

It’s no rocket science and really simple to pull off.

The problem starts when you try to do more complicated stuff, like groups of custom fields (metaboxes), repeaters fields and groups, connect posts using custom fields.

Show custom fields using Swift Templates without code

Listing your custom fields in WordPress is one of the simplest way to transform your website from static pages to a proper CMS. You can use it for:

  • Adding extra information on your posts and pages
  • Showcasing your team
  • Listing testimonials
  • Simple property listing
  • Custom product pages
  • Custom landing pages
  • Listing company services
  • And pretty much anything that might require some extra information

It’s possible to create all of the above without being a developer in three steps.

Read more

Post to Post Relationships with WCK 2.0.4

A new version of WordPress Creation Kit is now available: 2.0.4 with Post to Post Relationships

post to post relationships

WordPress Post to Post Relationships

In WordPress post types are often in a relationship of some sort. For example, you might want to relate a soccer player to a team. You could do it with taxonomies, but it can become cumbersome and it won’t really do what you wanted it to do.

I wanted to use a post to post relationship in my project using other plugins, but I got really stuck when I tried to integrate those in my theme! I’m really not a programmer.

Truth is, post to post relationship plugins have been around for quite some time. The CPT Select field in WCK quite some time ago, but to really make use of it you had to open up your editor and start getting really good at WP_Query.

Read more

WordPress 3.8 – The Best Redesign Since Ever?

WordPress 3.8 is just around the corner and I can honestly say it’s THE most exciting release since ever! With the WordPress 3.8 RC2 available for download, we’re only days away from the excellently polished WordPress 3.8 UI.

Much more than just a new skin

You can see by the title of this post that I’m quite excited about this release. The old design has been around since 2.7 with only minor improvements across the board (was back in 11’th of December 2008 when 2.7 was launched, 5 years ago!). While the new, WordPress 3.8 UI, keeps most of the elements in the same place, it’s clearly the biggest thing to happen visually in the last 5 years.

WordPress 3.8 UI is stunning to look at and work with, but it also represents the best responsive/mobile implementation we’ve seen for the WordPress backend so far:

  • the top and sidebar menus have been re-envisioned for small resolutions
  • the sidemenu is now hidden by default and can be much more easily extended on small devices.
  • the Add New Post works wonderful for resolutions under 600px
  • every button and link is just a little bit larger, so you can tap them even if you have big thumbs
  • comes with its own flat vector icon font for the admin UI, called dashicons
  • it’s not just a refined implementation of what was before, it was created with devices of all sizes in mind


Read more

WordPress Creation Kit Video

WordPress Creation Kit helps you develop intuitive WordPress sites, easily manageable by your clients, in half the time and without writing a single line of PHP code.

However, this is somewhat hard to visualize, so to that end we created a WordPress Creation Kit video explaining:

  • what is WCK
  • what you can do with it, in a tutorial like structure.
  • walking through almost all of the modules inside WCK

I tried to keep it as short as possible so consider this as a basic introduction.

Also we have MORE videos planned in the future, so if you have suggestions or thoughts you want to share, now is the time!

Swift Templates – a straight forward alternative to WordPress templates hell

I’m not a programmer… I do know some basic html and css, but I was nervous about messing with any of the templates in fear of making a bigger mess than where I started.

That’s a quote from one of our customers. We hear this quite a lot, not everybody is a developer. Most WordPress users just want something simple to understand and quick to get started with.

So you can’t help but wonder if the WordPress templates system couldn’t have been designed differently?

When you’re starting out it’s just painful. You would do anything BUT custom code your WordPress templates:

  • research 10+ plugins HOPING they can solve your problem
  • start using a lot of shortcodes inside the content area
  • consider reading that 5 parts HUGE article explaining how to custom code your own WordPress templates

You might even say, “Well, now that’s something you need to learn. Here’s the X or Y awesome tutorials on the matter!”

But the truth is, WordPress templates ARE complicated for a large number of WordPress users.
You’ll bump into:

As for learning about the WordPress templates system, all those articles and tutorials are just copying mechanisms. Just search Google for “develop WordPress theme” and you’ll find OVER 8 MILLION results!

Why does there have to be so many articles teaching you this? Should WordPress Templates really be so hard to understand?

Now imagine a system that will let you:

  • create listings of all your custom post types
  • single page templates that take into account your custom fields and metaboxes previously defined with WCK
  • without writing PHP and messing with any of the templates
  • no more playing around with a ton of shortcodes and plugins to list a simple custom post type or extra field.

Swift Templates beta for WordPress Creation Kit

Swift Templates helps you build front-end templates directly from the WordPress admin UI, without writing a single line of PHP code.

It turns a time consuming and error prone process that was previously only accessible to developers into a straight forward UI that with a little bit of HTML and CSS allows you to:

  • create archive listings for your custom post types including pages or posts
  • modify the single cpt page template to include ALL your custom fields and metaboxes
  • overwrite the default listing for your all single CPT’s with the one defined above
  • overwrite the default content with a template that gives you access to your custom fields and metaboxes

How does it work?

There are two (2) main cases where you can use Swift Templates.

1. Archive listing of CPT’s


Useful for:

  • normal archive pages with your own design (not theme dependent). Just create your templates, create a normal page that will contain the archive and add the swift-template shortcode
  • simple listings of posts or custom post types in any landing page on your site
  • (using the swift-template shortcode). Create your templates, setup the arguments and put the swift-template shortcode

Quickly create templates for posts, pages or custom post types that can include default WordPress information (the title, content, thumbnail, etc.) or Custom Fields previously defined with WordPress Creation Kit.

You can create read-more links to point to a Swift dynamically generated single template OR the default permalink.


Also, another really useful function is the possibility to overwrite the default content on that post with the single template, thus applying that template for ALL default single listings of your custom post type.

2. Single page listing of CPT’s


Useful for creating one off templates for pages or single posts / custom posts.

Let’s say you have a team page, with some extra fields for name, avatar and description. You can now overwrite the default page template with one that supports your extra fields available for that page only.

Why Beta?

In order to get this out to our customers we had to launch without some features that will make building WordPress custom templates even more … swift

Coming soon:

  • new pre-processed swift tags that will list ALL fields in a metabox with a default HTML and CSS – you’ll be able to make perfectly styled templates in under a minute.
  • swift tags support for custom taxonomies
  • search tag for archive templates (have a CPT called books.. this will let you search inside them)

Got you interested? Here’s how to get it

As of today, Swift Templates is available with the latest version of WordPress Creation Kit PRO.

For all previous WCK PRO and Lifetime clients, Swift Templates will be available via automatic updates or the account page.

What about WordPress templates?

Swift templates are NOT a 1 to 1 replacement to WordPress templates. That would be stupid! WordPress templates are complicated for a reason, there are a LOT of things to display in WordPress and that flexibility comes with a lot of complexity.

However, we’re hoping for Swift Templates in combination with the rest of WordPress Creation Kit to take you 80% there in 80% of cases. If we can achieve that, I’ll be one happy developer!

WCK Custom Fields API

Custom fields have revolutionized developing sites with WordPress and creating custom fields is becoming easier every day.

There are several plugins that simplify this task and make it easy for you to define custom fields and metaboxes with just a couple of clicks.


However, the pain starts when you try to display all this information in your templates. For this you’ll need to write code and you’re not really comfortable doing that.

You start by searching the Codex for functions that are supposed to make this tasks simple. But they’re not that straight forward, and after spending precious time trying to fit all the pieces together, you decide this process is too slow. You project needs to be finished yesterday!

So you bounce to using copy paste tutorials without actually understanding what they do. This sound easier, but it all falls apart when you realize you suddenly have some error handling and bug tracking to do.

Why does a simple thing, like getting information regarding images or users, need so many lines of code? Can’t it be simpler and more intuitive?

What if you could use simple to understand functions that give you what you want directly in your templates without extra work to process that information?

What if you could?

  • Save time by writing fewer lines of code (than using standard WordPress functions)
  • Avoid error handling and bugs that will eventually appear once more and more code is added
  • Get access directly to preprocessed data

Introducing WCK Custom Fields API

WCK Custom Fields API is meant to help you with just that. It consists of 3 easy to use, yet powerful functions that make it really easy to work with custom fields in your templates.

Let’s say you need to simply display a custom field in your theme.
With standard WordPress functions you’ll do something like this:

$my_meta = get_post_meta( $post->ID, 'my_meta_name', true ); 
if( !empty( $my_meta[0]['field-name'] ) ) 
    echo 'Value:'.$my_meta[0]['field-name']; 

Instead using WCK Custom Fields API, you’ll simply need one line of code:

 <?php the_cfc_field('my_meta_name', 'field-name'); ?>

*The function automatically detects the type of field and outputs values accordingly.

Things remain as simple even if you’re dealing with a repeater field, and need to output a specific entry (e.g. the second entry).
Instead of:

$my_meta = get_post_meta($post ->ID, 'my_meta_name', true);
if (!empty($my_meta[1]['field_name'])) {
    echo $my_meta[1]['field_name'];

You’ll have:

 <?php the_cfc_field('my_meta_name','field_name', false, 1); ?>

*The 1 at the end, tells which entry to display (index starts at 0).

For frequently used fields like Image Upload, User Select or Custom Post Type Select(for relationships between posts), things become even more complicated with standard functions.

Let’s say you want to display the avatar image from a metabox:

$my_meta = get_post_meta( $post -> ID, 'my_meta_name', true);
if (!empty($my_meta[0]['avatar'])){
    $src = wp_get_attachment_image_src( $my_meta[0]['avatar'], 'full' );
    echo '<img src="'.$src[0].'" width="'. $src[1].'" height="'.$src[2].'"/>';

Using the Custom Fields API this will simply be:

 <img src="<?php the_cfc_field('my_meta_name', 'avatar'); ?>" />

*The API function will automatically process and return only the URL.

You can also forget about error handling, no extra verifications being necessary when using the API functions.

This was just a quick glimpse of what can be achieved using the new WCK Custom Fields API. For mode details and code examples have a look at our documentation page.