WP Doge

I’d like to start off 2014 by dishonoring my family and the WordPress community by releasing WP Doge!

This small, procedural plugin will change the world of WordPress plugin development. How?

By showing post categories or tags anywhere you place the plugin shortcode:

Check it out! Use it on large commerce sites! Deploy it to multisite networks! Do it!

Download on WordPress.org

Leave hateful comment

Good People of WordPress: We are Fighting a War

2013 was, for me, an exceptional year. Many positive personal goals were met. Home ownership, moving to a desired location, and I made some great food and lego things, yadda yadda. Who cares.

That’s not what I’d like to write about now.

I’d like to write about the WordPress community.

If you’re a WordPress person I’ve interacted with in 2013, guess what? I love you.

Slow down, Rami! We just met.

I know! Shit, it’s weird for me, too. It’s a platonic love – please don’t freak out.

Strong displays of emotion are things I typically find unpalatable; there are few scenes more vomit-inducing than the insulin-overload of a couple fawning over one-another in public. Please approach these words as objective observation; not a vapid, wine-fueled declaration of fondness.

I am experiencing this emotion because nearly every person I’ve met in the community so far has been positive, generous, and, bizarrely, a seemingly excellent person.

In any group, those odds have to be pretty low, wouldn’t you think? Say you’re in Starbucks. What are the chances that every person in there is ethical, approachable, and loves helping others?

I’ve had the fortune of working with WordPress for just under 6 years now, but it was only in the last two years or so that I started engaging with other WordPress-focused professionals. This led to some great friendships, and a job that I love. I was consistently impressed by the quality of everyone I’ve met. Over and over.

Ok, great. So what?

I’ll TELL YOU so what, h3 tag:

There is a special significance and value to the quality of the WordPress community. It’s not just making great sites and apps. It’s something deeper, that some don’t see. Togetherness? Fixing the Internet? Those are great, but no.

We are fighting a fucking war, people.

Humanity is about to dive into an abyss of algorithms that permeate every minutiae of our existence. Open-source communities are the front lines against a force few will ever comprehend. WordPress is one of the most influential and powerful of open-source communities on the Internet.

Who is our enemy?

Closed-source content management systems, sketchy data-mining practices, terrible privacy policies, and the un-ending, Draconian greed of so many large businesses.

Let me ask you this: How long would it take to get a working*, WordPress-powered, private-access, social media site up and running?

1. Install WordPress.
2. Install BuddyPress.
3. Install P2.
4. Install a handful of plugins. Maybe.

12 minutes? 4 minutes?

*Working, not pretty.

That’s powerful ammo. Boom, you just got your entire group of friends off of Facebook.com when Facebook started requiring the retinal implant security measure in 2019. Combine that with the ethics of the GPL, and we have a substantial answer to the nightmare of proprietary terror that’s been infecting the Internet for years, robbing noble or ignorant ventures blind, and polluting the infinite canvas of the digital world with sub-standard code and absolutely horrifying business practices.

Let's go deeper.

Let’s go deeper.

But let’s get a little deeper into this.

Have you ever seen the user data a developer has access to with, say, the Facebook API? Today, it serves targeted ads to people depending on their interests, and you can discern some personality traits of users. You know their location, appearance, likes, who they sleep with, etc.

Tomorrow, things get darker.

Much darker. Predicting buying times and patterns for all purchases? Yeah. That’s coming.

Think game theory isn’t built deeply into that shit? Think again. In 50 years, large social media sites will be able to predict when and with whom you’ll interact with, weeks in advance.

Any developer will know this not as paranoia, but as my merely (colorfully, I admit) pointing out the road ahead for consumers.

Machine learning is the crux of these services, and as this century continues, as we spiral ever closer to a classic Orwellian dystopia, open source code will be the only defense against entire swaths of human culture being reduced to drooling, pliable yes-men. This is not a rant by Bill Hicks. It’s not a Philip K Dick novel. It’s fucking happening. Right now.

Imagine with me, for a moment, a world without any open-source projects. None.

No WordPress. No PHP. No Ruby, no JavaScript. No Linux. The list goes on and on. What is left?


The end of free will. The end of privacy. That’s what’s left. Control.

This is the future of our species. The fucking robots are here, and most of our peers will never know it. They’re here, and they don’t have lasers or machine guns. They have shiny MIT PhD’s with a focus in AI – hordes of them – producing a horrifying array of digital watchmen. Collecting data, playing out theories. Quietly, deep within the endless racks of screaming server farms.

I won’t touch on the government use of data because I have a deadline for a Genesis site tomorrow and don’t feel like losing my shit right now.

Today, I play a tiny, tiny role in this timeline. It’s still early, but I know I’m on the right side.

Thank you all for an amazing 2013, and I look forward to working with many of you more this year.

UPDATE: A day. A FUCKING DAY after writing this post, the W3C welcomes the MPAA as members. Link to article is below; I may add further reading as well.

Link to article on techdirt.com. (Jan 2014)

‘The Internet is fucked’ – An excellent summary by the Verge’s Nilay Patel on recent rulings. (Feb 2014)

Bach In Baltimore

I had a great time working with a non-profit in Maryland, called Bach In Baltimore. The task: WordPress design and development (what else?), with a bit of js timeline animation on the side.

I’m lucky to have had a deep love for the music of J.S. Bach since I was a child; it was some of the first music I heard as a child, thanks to my mother, and the music I most frequently recite on guitar during my free time.

I love attending performances of Bach, naturally, and one of the groups I came to love was Bach In Baltimore. They give frequent free concerts, and the organization is funded, primarily, by patron donations, and with a grant by the Maryland State Arts Council.

So one day, while I was looking for directions to attend one of their events, I made my way to their website.

I was saddened to see the type of WordPress template we all dread. The old-school ‘freemium’ template, with base64-encrypted spam links in the footer, numerous jQuery issues, and more.

It was so bad that I’m not going to post a before picture here. (If you’re really curious, check out the wayback machine, of course).

Once or twice per year – whenever time allows – I like to offer free WordPress services for an individual or company that’s 1) Brilliant, and 2) Likely would not have the budget for boutique web design and development services.

So I reached out, and was lucky to get a response from the Founder, Conductor, and all-around great guy T Herbert Dimmock. The rest is now history!

Here’s a look at their new site:


This was an entirely pro-bono site. Luckily, I have developer licenses for some pretty great plugins, so back-end stuff was largely trivial. I paid for one thing out of my own pocket – which is the theme I used as a framework. Can you guess what it is without peeking?

It’s by the awesome Mike McAlister, a theme called Radius.

A few essential plugins also power their site. So a huge shout-out to these lovely, brilliant works of art:

  • Gravity Forms
  • Yoast SEO
  • Event Espresso
  • Genericon’d
  • and to push from the stage, the amazing WP Migrate DB Pro

From there, we have some json api stuff to post activity to Constant Contact, and a few non-profit software suites. Doesn’t get bigger than, say, a typical Salesforce web-to-lead form setup, though.

Aside from some light design work after that, I made a short animation explaining the origin of J.S.Bach’s self-designed logo, using the Greensock Animation Platforms’ tweening library.

Certainly nowhere near the most complex WordPress site I’ve had the pleasure of building, but it was a whole lot of fun.

It was great working with (some) of these folks!

Bach In Baltimore

WordPress Support Rule # 2,372: Run the damn diff

One of the warning signs that you might be working with a WordPress installation that’s hacked the core for some terrible reason is heavy customization of the dashboard area, and other /wp-admin/ customizations, most notably when the customization provides no additional functionality.

It’s not an absolute rule, of course, but it does seem more common – especially among agencies / developers that brand and style WordPress in such a way as to present clients with a product they claim is proprietary.

The reason why I opened a new tab and created this post is that I’m working with one such website right now. I have no particular desire to shame anyone, email the agency, or even write to the client. It’ll be – politely – in my notes long before the project deadline, of course.

Sadly, this particular site is for a pretty large company – with some developers on staff – but none that work with web technologies, so there’s no way they’d know, either.

Although there are valid use-cases for everything below, here are a few points to look out for:

  • Excessive removal of core features, using functions such as
  • Heavy styling of the dashboard, especially for areas in which there is no functional reason for the appearance to need altering.
  • Any admin-footer branding indicating that the site is powered by “Joe Blow CMS” or the like
  • Removal of the WordPress generator meta tag
  • Excessive removal or editing of roles and capabilities
  • Heavy usage of vanilla PHP or other practices that indicate an unfamiliarity with native WordPress code.

See a few of those? Run a diff / compare on everything – not just /wp-admin. Use whatever is in your toolbox – you can do it with git, svn, or your favorite syntax editor.

Just run the damn diff. Because not finding this out early may cost you a great deal of time, and cause your customer a great deal of worry.

If you’re in unfamiliar territory, remember the diff!

WordCamp Baltimore 2013: Preventive Development

Here’s my presentation, and further resources for my talk “Maintaining Sites With Preventive Development” at WordCamp Baltimore 2013.

Links and Resources I Mentioned:

12: Dashboard Customizations

Basic WordPress Dashboard/Login Customizations

11: Using Staging

Here are some great staging resources:

WP Engine – super fast WordPress staging



Can’t get staging setup? Go local. One of the best ways to do that these days is with ServerPress, or Vagrant.

Bonus: VVV by 10up is wonderful.

Bonus Bonus: This excellent talk by Mark Jaquith at WCSF 2013.

10: Snippets

Github gists

A list of github gist alternatives

Coda clips roundup

nice collection of Coda clips

Design Shack snippets tutorial

Bonus: GistBox: a great helper app for github gists. Pretty neat.

9: Theme Frameworks

The use-case for theme frameworks and starter themes varies greatly. Here are some I’ve used that I find great to work with (when it’s relevant):


Bones by Eddie Machado and co.

Underscores by Automattic

8: Project Management Services

Depends on what works for you. I’m hesitant to recommend anything here. But I do love Asana as a sort of ‘homebase’. For WordPress-based solutions, CollabPress is great.

7: File Sharing

Same here. Hesitant to recommend anything. Why not try dropbox? Any relevant deliverables should be available to both parties 24/7.

6: Backup Options

There are several, of course, but here are the few I mentioned:




backup Buddy by iThemes


If you’re getting started, I highly recommend this tutorial series.

Git Tower is pretty great, as are the native github apps, if the command line is a bit daunting at first.

4: Scoping the Destination

Here’s a great helper plugin by the mighty Andrew Norcross: System Snapshot Report

3: Training and Documentation

Here’s that great plugin I mentioned by Mark Jaquith: WP Help

Remember to check out WP101.com and WPBeginner as well – great content on there, regardless of skill level 🙂

2: Two Important Dev Practices

Using namespaces and classes is an important general development concept. There are countless articles and resources on the subject, but here are two notes to help get things started in a way that is likely much more eloquent than my talk was:

Ryan Sechrest on namespaces and constants

Yoast on namespaces

1: Maintenance Contract

Your support/maintenance contract should be hand-written. Sure, you’ll need to include some clarification and boring lawyer jargon in some cases, but it should be clear and easy to understand.

Here are some links to help get things started:


A website maintenance contract template by MyIntervals.com

Those should give an idea of what you’re after. Although I find the above template to be deeply long-winded, contracts are specific to your use-case and the use-case of your client agreements.

Buzzword Generator Shortcode

That’s right. Another shortcode. Some time ago, I made a marketing website generator.

Now you can add randomly-generated marketing phrases in a WordPress plugin! That’s right! In 70 lines of PHP, this plugin will take your website from slag heap to A1 Internet Web Blog Plus Pro*!


  • incubate viral vortals
  • aggregate front-end models
  • utilize impactful deliverables
  • harness proactive applications
  • optimize ubiquitous convergence


Marketing website generator


WP Shortcode: The More You Know info box

If you haven’t heard of it, ‘The More You Know’ is a public service campaign on television that educates viewers on a variety of topics. From their website:

For more than two decades, NBCUniversal’s Emmy award-winning The More You Know public service campaign has been providing compelling and easy-to-use information that inspires and supports individuals to take action and create change in their lives and communities. This multi-platform campaign, through its public service announcements, digital content, programming and community outreach efforts, focuses on some of the country’s most important social issues including: diversity, education, health and the environment.

Download the TMYN plugin

Here’s the output:

Did you know that the 'The More You Know' website uses WordPress as a CMS? It's true!

Simple Static Social Sharing

This is a fork of the plugin ‘Simple Social Sharing’ by @norcross and Mandeep Singh

The original plugin is located here: http://wordpress.org/plugins/simple-social-sharing/

This version adds some front-end stuff, like icons and a bit of css, updated social networks.


  • No javascript
  • No external calls at all, in fact.
  • Light options
  • Icons wiggle and whatnot on :hover
  • No images
  • uses Genericons (http://genericons.com)

Download/fork on github

Oh – and if you’re looking for an option that includes external scripts so you can show stats, I recommend “Floating Social Bar” by Syed Balkhi. Make sure to check out the plugin description, as its’ major feature is the way it loads external scripts.