Steve Grunwell

Open-source contributor, speaker, and electronics tinkerer

Keeping WordPress Under [Version] Control with Git

Over the last year or so I’ve been deploying my sites and applications almost exclusively through Git. It took a while to get used to, but pushing all of my code through git has forced me to think through my code before committing (lest I get git blame’d), kept me concentrated on the task at hand, and has made collaborating with other developers so much easier. Deploying WordPress sites through Git require a little configuration; this article outlines my personal Wordpress-Git workflow.

Continue reading→

Quick Tip: Set the Default Display Name for WordPress Users

I started work on a new WordPress site this morning and, after creating a couple of users, quickly got bored manually setting each user’s nickname and display_name properties in order to display authors as “firstname lastname.” I found a few forum posts in the WordPress support forums for “how do I automatically set the display name for WordPress users?” that had partial answers but no real solutions. Then I stumbled on this article by Rares Cosma that had just what I needed.

Rares’ solution uses the user_register WordPress action hook, which gets triggered when a new user account is registered. I modified his original version, streamlined it a bit, and applied the ‘firstname lastname’ pattern to both the display name and the nickname attribute.

Continue reading→

Using Git Checksums to Invalidate Browser Caches

I’ve been having a lot of fun with the new, open-source version of this site and have been looking for opportunities to experiment with things I’d have little reason to do on client sites. For instance, I wanted to see if I could get the current git checksum as a string using PHP (without resorting to shell commands) so that I could display it in the comments of my WordPress template. Once I was able to achieve that, I took it one step further and used it to invalidate browsers’ cached versions of my scripts and styles anytime I made an update to the theme.

Continue reading→

Using Advanced Custom Fields for WordPress

If you regularly build WordPress sites and haven't tried Elliot Condon's Advanced Custom Fields plugin, I'd highly recommend checking it out as it will forever change the way you use WordPress.

With Advanced Custom Fields, you can easily define custom field templates for particular post types, page templates, or even individual posts/pages. With the help of some paid add-ons, you can quickly add support for repeaters (useful for carousels/sliders), a site options page (hello Google Analytics profile ID), or any of a dozen other official and third-party add-ons.

Continue reading→

Using jScrollPane with jQuery UI Draggable

An application that I’ve been working on recently makes heavy use of the jQuery UI library, particularly the draggable, sortable, and droppable modules. Users need to be able to sort a list of locations by dragging them within a fairly confined space. Since the area containing the list items has a fixed size, scrollbars appear when the list exceeds the bounds of the pane.

Normally, $.draggable( { scroll: true } ); is enough to get jQuery UI to work with the native browser scrollbars. For this particular project, the design called for custom scrollbars, which led me to Kelvin Luck’s jScrollPane jQuery plugin. Unfortunately, while jScrollPane allows us to style scrollbars however we wish, they doesn’t behave exactly like those native to the browser.

Continue reading→

Elmer’s Science Fair

The Elmer’s Science Fair Facebook application allowed Facebook users who had liked the Elmer’s page to submit photos, either through direct upload or from their Facebook albums, of their children’s science fair projects for the chance to win a trip to Washington D.C.

Continue reading→

200Columbus: The Bicentennial

2012 was a big year: CERN found the Higgs Boson, Instagram was sold to Facebook for a cool $1B, and The Avengers and The Dark Knight Rises have some of the largest openings ever (both great movies, by the way). In an agency responsible for branding a city of 2M+ people, 2012 meant one thing: The Columbus Bicentennial.

Continue reading→

Notes from Build Responsively Workshop

The other week I attended the Build Responsively workshop, presented by Sparkbox out of Dayton, Ohio. The workshop was two full days of responsive web design evangelism and techniques. Being a geek in a room full of other geeks, I thought it would be cool to write my notes in Markdown, then put them in a gist so I could easily share them while updating them between sessions.

Continue reading→

Welcome to the new SteveGrunwell.com blog!

Since SteveGrunwell.com launched over two years ago I’ve toyed with the idea of adding a blog. When I really got going with WordPress, I felt like I had even less of an excuse. Now, to correspond with a complete refresh of the site, I’m proud to announce the SteveGrunwell.com blog.

Continue reading→

Columbus Museum of Art

To correspond with the re-opening of the museum after a major expansion project, the Columbus Museum of Art came to Fahlgren Mortine to completely rebuild their site. It was an ambitious project, but our efforts paid off; the new Columbus Museum of Art website was awarded a Silver ADDY at the 2011 Columbus ADDY awards.

Continue reading→

Page 14 of 14

Be excellent to each other.