Category: WordPress

blog posts pertaining to WordPress and WordPress coding

Quick Hack to Remove Auto ‘P’ Tag from Contact Form 7

Recently I had a situation where I needed to remove the auto generated ‘p’ tag from Contact Form 7, but could not do it in the conventional way. Contact Form 7 uses a number of constants, set in the WP config file, which allow behaviour changes. I always found that a bit of an odd approach (configuring a plugin’s options from the entire site’s config file), but it generally caused little concern. On this project, however, it was not possible since the site lives on a multisite install and only one theme required the change.

Surprisingly, I found no other filter options that could be accessed easily. I’m sure it can be done, but in the time I had I didn’t find anything. So the quick and dirty answer was to write a jQuery hack that can simply remove the ‘p’ tag for this one site. Here it is:

jQuery(document).ready(function ($) {



Use ‘is_customize_preview’ and not ‘is_admin’ with Theme Customization API

Recently I came across a bug, and then another bug, when trying to solve a problem in the Theme Customization API. The site I was working on is using jQuery UI tabs, and when viewing the preview in the customzer, the script ended up looping and reloading the tabs over and over. This is a known bug (ticket 23225), so I decided I would add a condition to not load the jQuery UI script while in the customizer, using is_admin(). This did not work, so I decided to investigate further.

Turns out, is_admin() returns ‘false’ when in the customizer. Specifically, it returns ‘true’ until the page preview loads, at which point it returns ‘false’.

Happily, there is a new WP function that determines specifically when you are in the customizer. It is called ‘is_customize_preview()‘, and also returns a boolean. So a simple true == is_customize_preview() returns true in the customizer, and false everywhere else, including in other parts of the dashboard.

Here is the test and the results for those who are interested:

function debug_to_console( $data ) {
if ( is_array( $data ) || is_object( $data ) ) {
echo( "" );
} else {
echo( "" );

function test_is_admin() {
if( is_admin() ) {
debug_to_console( 'true is admin');
} else {
debug_to_console( 'false is admin');

add_action('wp_loaded', 'test_is_admin');

function test_is_customizer() {
if( true == is_customize_preview() ) {
debug_to_console( 'true is customize');
} elseif (false == is_customize_preview() ) {
debug_to_console( 'false is customize');

add_action('wp_loaded', 'test_is_customizer');

// front-end page: is_admin == false, is_customize_preview == false;
// admin page: is_admin == true, is_customize_preview == false;
// customizer: is_admin == false, is_customize_preview == true

Note: I was going to report this as a bug, but turns out it had been reported and is not considered a bug. Fair enough, just need to get the word out so developers don’t waste time on this small variance.

CPT Auto Menu now handles multiple custom post types

Version 1.1.0 of my Custom Post Type Auto Menu plugin is out, and I am happy to say it now handles multiple custom post types. This is a feature that was requested, and frankly does make a lot of sense. It took quite a bit of reconfiguring, so any previous users of the plugin will have to re-do their settings in order to make it work, even if they just update it (sorry about that!). But with only a single custom post type, that is an easy fix.

In the announcement post I explained how the plugin works. It is still basically the same, except that multiple post types, and therefore multiple menus and parent menu items can be selected.

An image of the CPT Settings screen

In this example three custom post types have been chosen: Motorycle, House and Project. After selecting CPTS’s it is neccessary to save in order to launch the Menu Settings tab.

Continue reading

Plugin: Custom Post Type Auto Menu

NOTE: The plugin has been updated since this post to handle multiple custom post types. This article still gives the basics but the settings have changed since then. Read about it here.

While working on a recent site, I realised that a simplified method for adding a new custom post type post to a menu was needed for the sake of the clients, who are not used to working with a CMS. In this case, the ‘Projects’ custom post type is used to encapsulate all the photos and information they would like to display related to each of their construction projects. The projects are listed on the ‘Projects’ page and displayed in the corresponding menu.
Continue reading