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.
Courses
  • Web Design

    The WordPress Theme Customizer

    1.5 hours
    $15
  • Code

    Design Patterns in WordPress

    1.6 hours
    $15
  • Code

    Working With Meta Boxes in WordPress

    1.5 hours
    $15
  • Code

    Using the WordPress Settings API

    2.2 hours
    $15
  • Code

    WordPress Widgets: Front To Back

    2 hours
    $15
Tutorials
  • Code
    Saving Images with the WordPress Media UploaderWordpress media uploader
    231 shares
    In this series, we'e taking a look at how to implement the WordPress Media Uploader in an actual plugin. The idea behind this series and its associated code is to give a clear understanding of how it works, how we can use it in the future, and how we can incorporate it into our work. In this article, we're going to pick up where we left off and finish implementing the rest of this plugin. Note that I'm assuming you've read the previous two posts and understand the source code that we've covered thus far.Read More…
  • Code
    Adding and Removing Images with the WordPress Media UploaderWordpress media uploader
    255 shares
    In the previous post in this series, we started working with the latest iteration of the WordPress Media Uploader in order to get a clearer understanding of how to begin to incorporate it into our projects. Based on the feedback from the first article, we're going to look at expanding the scope of this series a little bit more. In this article, we're going to look at practically applying the functionality that we introduced in the last article. Then, in a follow up article (or perhaps more than one follow-up article) we'll look at some more of the finer points of how the Media Uploader works.Read More…
  • Code
    Getting Started with the WordPress Media UploaderWordpress media uploader
    182 shares
    When WordPress 3.5 was released, one of the most significant changes that was introduced was to that of the Media Uploader. Perhaps a more accurate description of the change would be to refer to at as an addition of a new Media Uploader. Since the new Media Library is what’s becoming standard in WordPress, and since there’s not a lot of documentation available for how to use it, we’re going to take a look at the functionality over the next few articles to understand how the new Media Library is constructed, how we can implement it in our own work, and how we can take advantage of the various functionality that’s already included in WordPress core.Read More…
  • Code
    Call for Authors: Write For Tuts+!Write for us
    158 shares
    We're currently looking for more authors to join our team! Specifically, we're looking for those who have strong web development skills - both front-end and back-end. Of course, this raises the question: what all does this entail when it comes to write for an established, respected, and educational network?Read More…
  • Code
    The Beginner's Guide to Type Coercion: A Practical ExampleType coercion
    220 shares
    Throughout this series of articles, we've been talking about type coercion, how it differs from type conversion, and how it performs in dynamically typed languages. Whereas the other article focused on weakly typed languages and data types at a high level, we're going to be looking at some specific examples of type coercion in a weakly typed language, and the pitfalls that we may experience without knowing how type coercion works and how it can backfire.Read More…
  • Code
    The Beginner's Guide to Type Coercion: What is Coercion?Type coercion
    152 shares
    As mentioned in the first post, this series is specifically geared towards beginners or towards those who don't have a lot of experience with weakly typed languages. That is to say that if you've been programming in both strongly typed and/or weakly typed languages and are familiar with type coercion and the pitfalls that can occur when performing certain operations, then this series may not be of much interest to you.Read More…
  • Code
    The Beginner's Guide to Type Coercion: Data TypesType coercion
    146 shares
    In this series, we're going to take a beginner's look at dynamic languages, how variables are defined, how their data types are inferred and are different from their statically counterparts, and how to avoid some of the major pitfalls that come with working with these languages.Read More…
  • Code
    Tips for Writing Maintainable WordPress Themes: ToolsWriting maintainable wordpress themes
    285 shares
    Throughout this series, we've been talking about a number of practices that we can employ in our WordPress theme development that will help not only provide a consistent foundation off of which we can build our existing and future projects, but that will also help us maintain them after they're released. In this final article, I'll be talking about several different settings and plugins that I think should be defined and/or installed in every WordPress development environment to make sure that you're using the most up-to-date APIs, that you're not negatively impacting performance, and that you're not causing any notices, warnings, or errors to be thrown via PHP.Read More…
  • Code
    Writing Maintainable WordPress Themes: Naming ConventionsWriting maintainable wordpress themes
    256 shares
    In the first post in this series, we reviewed some of the strategies that are available as it relates to organizing our WordPress theme directories in order to make them more maintainable. Ultimately, the goal was to provide a directory schema in which we could organize our files such that we would have a level of cohesion, understanding, and maintainability to the work that we're doing. But that's not all there is to writing maintainable WordPress themes. Another aspect is to follow the conventions set forth by the WordPress Coding Standards. W˜e're going to take a slightly more granular look at some of the strategies and tools that we can use in order to make sure we're making our themes as maintainable as possible.Read More…
  • Code
    Writing Maintainable WordPress Themes: DirectoriesWriting maintainable wordpress themes
    272 shares
    When it comes to building WordPress themes - as with many other types of things, really - there are right ways and wrong ways to do it. For those of us who want to be professional WordPress developers, for those of us who truly care about the work that we're doing, and for those of us who want our work to last, then we need to be forward thinking about how we're organizing the files and the code that goes into our theme.Read More…
  • Code
    How To Display Post Meta Data on a WordPress PostSingle post meta data thumb
    161 shares
    In my last series of articles, we looked at the concepts of object-oriented programming from the perspective of the beginner. The goal of the series was to take those who were not familiar with object-oriented programming in PHP, and explore the foundational aspects of the paradigm within the context of WordPress. In this article, we're going to take a look at extending the plugin such that we can display the data on a single post page. We're going to talk about how to do this given our existing code, how to do this, and we're also going to talk about why this may not be a good idea.Read More…
  • Code
    Beginner Tips For Getting Started with WordPress DevelopmentGetting started with wp
    232 shares
    One of the advantages that's often claimed is an advantage for building for WordPress is its low barrier to entry, and although this isn't altogether false, it also makes it intimidating for anyone who is looking to truly get started in WordPress and struggled with knowing how - or where - to get started. I thought it would be worth drafting up a few points worth sharing the next time that this question comes up.Read More…