Tom McFarlin
Tom is a self-employed developer who loves writing, building, and sharing WordPress-based projects. He runs Pressware where he provides WordPress goods and services. You can follow him on Twitter.
  • Code
    Guide to Managing Premium WP Projects – Part 2: Building Your ProjectPreview
    The overall goal of this series is to provide strategies that single developers (or small teams of developers) can use to help plan, build, market, and maintain successful WordPress projects and do so on little-to-no-budget.Read More…
  • Code
    Writing Maintainable WordPress Widgets: Part 1 of 2Plugin boilerplate thumbnail
    Best of Wptuts 2011: Every week through January, we're going to revisit some of our favorite posts from 2011. Plugin development can often feel like the wild west if you're creating something from scratch without a boilerplate or a similar plugin to work from - Tom's 2 part series on Maintainable WordPress Widgets/Plugins offers some practical guidelines that should keep you on the tracks! When it comes to software development, frameworks and libraries are popular because they're helpful, right? They provide a consistent way to write and organize code in hopes of making development and maintenance as easy as possible.Read More…
  • Code
    Guide to Managing Premium WP Projects - Part 1: Planning The ProjectPenny
    There has never been a better time to be a WordPress developer. The platform is under active development, the community is growing, the marketplace for both free and premium projects has exploded, and more and more people are making a successful living by providing projects and services specifically targeting WordPress.Read More…
  • Code
    5 "Saintly" Practices that All Wordpress Developers Should Strive For Saint thumb
    Here on Wptuts+, we talk a lot about the 'how' and less about the 'why.' Of course, we are a tutorial site, so that's the goal, right? Well, as a followup to last month's article on the "Cardinal Sins of WordPress Plugin Development", today we're going to look at a few practices that, if every developer followed, would make the world a better place (well, at least our world!).Read More…
  • Code
    How To Internationalize WordPress Themes and Plugins Preview
    In 5 Cardinal Sins of WordPress Theme Development, we briefly spoke about the significance of internationalizing themes and plugins but we didn't actually discuss how to do it. If you're in the commercial theme or plugin space, then it's almost expected that your work will support multiple languages. In the this article, we'll take a look at understanding what internationalization really is, why it's important, and what steps are necessary to internationalize your project. Read More…
  • Code
    5 Cardinal Sins of WordPress Theme Development5sins
    We talk alot on this site about tips and tricks for getting what you want out of WordPress... but today we're going to take a step back from the technical stuff to look at some practices, bad habits, and coding faux pas that would be better left in our past. So, forgive the heavy-handed post title (haha!), we're about talk bring up 5 surprisingly common practices that are blemishes on the platform.Read More…
  • Code
    Attaching Files To Your Posts Using WordPress Custom Meta Boxes, Part 2Preview
    In the first post, we took a look at how to attach a file - specifically, a PDF - to WordPress posts and pages without having to use a plugin or third-party solution. At this point, you can only upload files - there's no way to actually deactivate the link or delete the link to the file once it has been uploaded. In this post, we'll take a look at how to provide some slightly better styling for the download link and how to extend the custom meta box functionality by allowing users to delete files after they've downloaded them.Read More…
  • Code
    Getting Started with the WordPress Transient API, Part 2Preview
    In the first post in this series, we took defined what the API is, how it differs form the settings API, and some of the general calls that we can make to the API. In this post, we'll be taking a look at a practical implementation of the API and how to handle some idiosyncrasies that come with dealing with expired data.Read More…
  • Code
    Attaching Files To Your Posts Using WordPress Custom Meta Boxes, Part 1Preview
    Over the course of the next two posts, we'll take a look at how we can leverage the WordPress API to define our own custom meta boxes for attaching a document (such as a PDF) to our WordPress pages. We'll also take a look at how to properly remove files should we choose to delete them from our posts.Read More…
  • Code
    Getting Started With The WordPress Transients API, Part 1Preview
    One of the nicest things about working with WordPress is the power of its API. When creating themes and/or plugins, the platform makes it incredibly easy to serialize and retrieve data. In fact, the API abstracts many of the common challenges of working with data such as data sanitization and efficiently retrieving data on request. Throughout the next two post, we'll take a look at the Transients API, why it matters, how to use it, and take a look at a practical implementation that we can use in future projects. Read More…
  • Code
    Advanced WordPress Queries, Part 3Preview
    Throughout this series, we've taken a look at the WordPress Database, executed some simple queries against it, and looked at a variety of ways to read data from the database. As useful as this is, it will only take you so far... especially when it comes to creating your own themes, plugins, or other extended WordPress-based functionality. In this final post, we'll take a look at how we can update existing values in the database and even introduce values of our own!Read More…
  • Code
    Advanced WordPress Queries, Part 2Preview
    In the last post, we too a look at the basic WordPress database schema, queries, and how to get started with retrieving information from the WordPress database. We also took at a look at WordPress wpdb class which makes it incredibly easy to begin running queries against the database. If you've not read the last article, be sure to check it out as this series builds on it. In this post, we're going to take a look how to how to track any errors that occur while running our queries and the variety of ways for retrieving data from a WordPress database.Read More…