$wf - the point of entry into the entire API

The MasterPress API is quite vast but it offers a very simple entry point to access all of the functionality within – a single global PHP variable $wf, which is an instance of the MEOW class (an extension of the WOOF class).

“wf” stands for WordPress Framework – intentionally very short so that it is quick and easy to type.

The general pattern of code using the MasterPress API will be a method call or property access on the $wf object to obtain either a single object instance of another class, or a WOOF_Collection of such objects. You’ll often then chain additional property methods and calls on those objects, many of which can be done on a single line of code.

The examples below show some typical uses of the API. Note that in each example, we first start off with a method call on the $wf object, and then proceed from there:

Example 1: Working with a single taxonomy term

Example 2: MasterPress API - Looping over a post collection using $wf

Here’s how you might achieve something similar to Example 2 with standard WordPress template tags:

Example 3: WordPress API - Looping over a post collection with the template tags

You’ll note that Example 2 and 3 are quite different – where MasterPress favours drilldown property access on objects, most actions in WordPress revolve around calling functions declared in global scope – the so called template tags in WordPress. Furthermore, most of these calls either require some type of ID to be passed in to provide context, or additional function calls which change the global state of the current environment – this requires more code and can be rather counterintuitive at times (try explaining a function like setup_postdata or wp_reset_query to a novice developer).

The Importance of the global keyword

The $wf variable is exists in PHP’s global scope, which means that you will need to globalise the $wf when using it inside custom functions, including WordPress hooks, filters and handlers, as in the example below:

Example 4: Using global inside functions

Failing to add the global declaration on line 10 above would cause the function to fail with a fatal error when trying to render the example.

An important note on partial templates

Partial templates in WordPress, including files such as header.php, footer.php, and sidebar.php also require the $wf variable to be declared global, since these are included (required) in the context of WordPress’ load_template function, which is shown in the source-code excerpt below:

Example 5: load_template

Partial templates are brought into your templates as if they are inside a function body, so the you should add the global declaration at an early point in your template, as in the header.php example below:

Example 6: using global inside header.php

The most reliable way to work with $wf is to use the global declaration everywhere you intend to use it.

Latest From the Blog

MasterPress 1.1.4 now available

MasterPress 1.1.4 is now available. This release contains an important compatibility fix for WordPress 4.5 to allow correct detection of the taxonomy term editing screen. Without this fix, any custom fields you have attached to custom taxonomies will not be shown at all in the editing form. Note also that MasterPress will still detect the edit screen correctly in… 

Plugin Requirements

MasterPress requires a minimum of WordPress version 3.4, MySQL 5, and PHP version 5.2.4.

We also recommend that PHP is configured to use a memory limit of 64MB per request (128MB may be required for sites with higher complexity).

This plug-in is not compatible with the WordPress.com hosted service.