Software Engineering in WordPress, PHP, and Backend Development

Author: Tom (Page 313 of 427)

WordPress and MVC (Gloves Aren’t Made for Feet)

One of the topics that periodically crops up in discussions as it relates to WordPress is the idea of WordPress and MVC.

That is, developers wants to take an MVC approach to building WordPress applications. And I get it – I love MVC. It’s why I used to work with Rails, it’s why I was really excited when Microsoft released .NET MVC years ago (when I was working in .NET).

But the thing is that MVC is not the silver bullet of web development that we try to make it out to be. Yes, it’s an awesome design pattern, and I personally think that it fits the web application model like a glove, but not every framework or platform implements that design pattern.

Case in point: WordPress is not MVC.

And that’s okay. I think we need to leave the desire of trying to shoehorn it into our projects aside especially when the pattern WordPress provides is not only sufficient, but works well when leveraged correctly.

Continue reading

Understanding The WordPress defaults Array

Earlier this week, I received an email from someone who was asking about the Settings API. Specifically, he was curious as to how the WordPress defaults array works.

For those of who may have worked with theme development, plugin development, or the Settings API in general, then you may be familiar with functions that look like this:

/**
 * Provides a default value for the theme layout setting.
 *
 * @since    1.0.0
 */
function get_theme_default_layout_options() {

	$defaults = array(
	    'layout'                         => 'right_sidebar_layout',
	    'display_featured_images'        => 'always'
	);

	return apply_filters ( 'theme_default_layout_options', $defaults );

}

But if you’re not familiar with the Settings API or with how to `apply_filters` call works, then this particular function can be confusing especially when it comes to understanding the serialization lifecycle of saving options to the database.

Continue reading

How To Run a Viable Business By Curtis McHale

Earlier this year, Curtis McHale released an eBook on how to Learn WordPress DevelopmentOver the past few months, Curtis has been working on another book called Don’t Be an Idiot: Learn To Run a Viable Business which, as the title so subtly suggests :), helps provide readers with information on how to run a business successfully.

Here’s the unique thing about the book: It’s not just Curtis’ perspective.

In fact, he interviewed over 10 people for the book and is including their perspective on their businesses, how they run them, some of the challenges that they’ve had, as well as some of the things that they’ve done to continue their career of self-employment.

Continue reading

Comments on this post are closed. Please leave them on the original post.

Yesterday, I was humbled to have been featured being featured on ManageWP’s most recent article.

Directly from the the post:

I recently published a post on WPExplorer rounding up the names of ten personalities in WordPress that you should be following. Of course, those were not the only ten people that you should know about – there are many, many more awesome people in our community and no list can ever be complete.

Here I showcase, in no particular order, 25 WordPress thought leaders that I think you should follow – people who offer things of value to the community, be it awesome plugins, original articles, contributions to the core, etc.

Continue reading

Software Milestones: Keeping Track of All The Things

One of the challenges that comes with managing any software project is making sure that milestones and deliverables are handled on time. The thing is, it’s hard – from the project outset – to always to predict some of the things that will crop up within each milestone.

If you’re using source control, this can make it difficult to keep your source control in sync with what milestone on which you’re working.

For example, I typically like to work on a milestone, then tag it, and release it. After that, I may do something like `milestone-1.1` or `milestone-1.2` as changes arise, but the more work that arises with each future milestone, and the various impacts it has on previous milestones, the more difficult it can be to truly track each milestone.

So what are we to do?

Continue reading

« Older posts Newer posts »

© 2025 Tom McFarlin

Theme by Anders NorenUp ↑