Blog

  • WordPress 4.8

    We did a ton of work on widgets in the WordPress 4.8 release. Prior to this release there hadn’t been any new widgets introduced for a very long time. Now there are media widgets for images, video, and audio. Additionally, the Text widget finally gets the TinyMCE visual editor just like the post editor has…

  • Customizer Features for WordPress 4.3 Kickoff

    Here are the features I have suggested/proposed during the WordPress 4.3 kickoff: Partial Refresh This greatly improves performance of previewing changes in the Customizer for non-postMessage transport settings (JS-applied changes) by just refreshing the area of the page that has been changed. As such it eliminates some of the need to do postMessage in the…

  • WordCamp Sydney talk: Customize all the things!

    Today at WordCamp Sydney, I speak on The Customizer: The Customizer is one of the least known yet most powerful features of WordPress. We need to get past thinking of it as the “Theme Customizer” which only good for tweaking colors and a limited number of settings. No, the Customizer provides a framework for live-previewing any change…

  • Re: Edit WordPress Posts and Postmeta in the Customizer

    I couldn’t reply to Jeff’s comment on Sarah’s WP Tavern post because of a Jetpack problem, so I’m posting it here: With the Front-end Editor using the Customizer as a framework, I wonder if the interface will look similar to this experiment? I hope not. This plugin is really a prototype to demonstrate how the…

  • Failures related to the WordPress APC Object Cache plugin

    On a site for a newer X-Team client, APC was previously chosen as the object cache plugin. This has caused some headaches due to APC not being available while in CLI mode, rendering WP-CLI mostly broken: any commands which change parts of the database which get object-cached won’t appear until the cache gets invalidated, which may…

  • Easily turn any webcam image into video on an OS X Dashboard widget

    I have a few webcams on my network which I can access via URLs like http://198.162.1.30:8080/cam.jpg. Here’s a handy little bookmarklet (pagelet?) which allows you to turn any such webcam URL into live video (here, 1 fps): data:text/html,<img src=”http://198.162.1.30:8080/shot.jpg” onload=”var img = this; setTimeout( function(){ img.src = img.src; }, 1000 )”> Paste this  data:  URL into…

  • Regularly cleaning up /tmp on a DreamHost VPS

    I ran into a problem recently where I was no longer able to upload a file via PHP. I checked the server error log, and I saw entries like: ModSecurity: Input filter: Failed writing X bytes to temporary file Looking at my /tmp directory it contained 128MB of data. Apparently ModSecurity tries to prevent the…

  • Re: Sharing Sidebars Across a Multisite Network

    In a post yesterday at WebDevStudios about “Sharing Sidebars Across a Multisite Network”, I was reminded of a workaround that I had to put into the Widget Customizer plugin. There is this unfortunate condition inside of the core wp_get_sidebars_widgets() function: // If loading from front page, consult $_wp_sidebars_widgets rather than options // to see if wp_convert_widget_settings() has made…

  • Quick check if merge will break the build

    Quickly check from feature branch if merging will break the target branch (e.g. develop): git merge –no-commit develop .git/hooks/pre-commit # assuming you added this hook git merge –abort

  • Revelations about filter_input

    WordPress has the unfortunate legacy situation of having to force input variables to be “magic quoted”, something which has been deprecated in PHP for some time. So when you are working with data passed from the user, you have to run those input variables ($_GET, $_POST, $_REQUEST) through stripslashes(), which is really annoying. At least…