Author: Frankie Jarrett (page 1 of 3)

My first 13 weeks without e-mail push notifications

13 weeks ago today my wife and I were experiencing an exciting life event for the very first time: child labor.

Of course my wife was especially experiencing it! As I held her hand and sat with her for hours and hours in that hospital room, all I could think about was making sure she was being comforted so she knew she wasn’t alone.

We were both so excited to meet our son.

But I quickly realized something else was vying for my attention. And it was coming from my front-left pants pocket…

Read more →

Introducing the Strong Password Generator plugin for WordPress

Today I released the Strong Password Generator plugin for WordPress.

Last week I released a plugin called Expire Passwords which is meant to harden site security by requiring certain users to change their passwords on a regular basis.

The plugin got some early users straight away, one of whom suggested that it might also be nice to give users a way to generate a strong password, making it even easier to reset it when prompted.

What a great idea! So great, in fact, that I thought it could really be a standalone feature and plugin in it’s own right.

Read more →

Introducing the Expire Passwords plugin for WordPress

Today I released a new plugin for WordPress called Expire Passwords.

This latest product is a continuation on my streak of other plugin releases that also deal with the topic of user session security.

The idea here is pretty simple.

If you have registrations open on your WordPress site, chances are there is a decently-sized group of users that have simply gone MIA. They have accounts, and they might come back later, but you’re just not sure when that will be.

The fact of the matter is, the more active login accounts you have on your site, the more potential opportunities there are for break-ins. And once a hacker is authenticated inside WordPress with the right kind of capabilities, the more opportunities there are to do some real damage.

Read more →

So you want to be a web developer, huh?

I get this question all the time:

Hey man, how can I learn to do what you do?  -Random citizen

And I can probably guess why they are asking it too.

Read more →

The problem with relative time calculations in bash date strings

Today I was writing a bash script that needed to reference a time in the past relative to the current UTC date.

For instance, if today is March 31st, 2015 UTC, what month was it exactly one month ago?

Answer: February

However, I found it was less than trivial to actually get the correct answer using a relative time calculation with date.

Read more →

How to connect Apple TV to a hotel Wi-Fi network

Whenever my wife and I take an extended vacation I always bring along our Apple TV.

At the end of a long day filled with adventure and fun it’s nice to just snuggle up together and watch your favorite show on Netflix or rent a new release comedy.

I’ve found that hotel television is still so primitive and annoying. The on-demand movie rentals are limited and very pricey, the regular programming is usually in standard definition, and you’re forced to channel surf without a guide. Ain’t nobody got time for that!

When I book a hotel I always make sure there is free Wi-Fi and that they say there are “flat screens” in every room, this tells me that there must be an HDMI input on it somewhere.

Ah, but my Apple TV doesn’t have a browser! So when the hotel Wi-Fi splash screen pops up asking for confirmation that I “Agree to their terms of use” or to enter some sort of special login, I can’t.

It seems we’re left with no choice but to do some friendly hacking to circumvent this annoying speed bump! :-)

Read more →

WordPress challenge: Building a web app from scratch

For the past 7 years I’ve been building websites, themes and plugins for WordPress. It’s really fun, and I love it.

But there are some avenues that I have yet to explore. The biggest one is building a web application using WordPress.

I’m happily employed over at X-Team working full-time on Stream, so I’m really just looking to create another passive income stream for my family. This is not urgent in any way, and if I’m being totally honest with myself, I’m probably just looking to scratch the proverbial entrepreneurial itch I have after selling a business I was running on the side last month.

If I’m going to start a new project, and there is not a strict time table, why not try something new? It will give me a chance to learn some new technologies I’ve not used before, like Backbone.js, and build something that I think is cool.

Read more →

Parting ways with and looking ahead toward a brighter future


Three years ago, in July 2011, I started a theme shop. It was an era where many people in smaller niches were yet to be discovered by developers as a force to be reckoned with. The “The Long Tail” principal hadn’t yet sunk in, at least not enough for churches to have viable WordPress theme options available to them.

Churches were being grossly under-served in every WordPress theme marketplace. The most common option for them was to customize their favorite “photography” or “design agency” theme, somehow seeing past page after page of irrelevant stock imagery and the thousands of “shortcodes” they wouldn’t be using. Sprinkle in a few plugins, and say a prayer – maybe, just maybe, this would work.

Read more →

WordCamp KC: Version Control Using Git

Version control is a must for any professional web developer, frontend or backend. I had the privelege of speaking this year at WordCamp KC on the topic of Version Control Using Git.

There are many ways to setup Git, but in my talk, the aim was to cover the simplest approach possible so folks could get set up quickly.

This tutorial-style post is meant to provide more detail on how to start using Git on your local environment.

The slides used for this presentation can be seen at:

Read more →

Get an attachment ID by URL in WordPress

We all know you can use wp_get_attachment_url() to return an attachment’s URL by passing in the ID, but what about the reverse scenario?

There are a lot of long-winded examples of how to get an attachment ID by URL floating around the interwebs. Most of them limit results to only returning images or use expensive DB queries. Really, there should be a function for this in core, but there isn’t.

Needless to say, I wasn’t really happy with any of the solutions I found people using, so I decided to take a stab at it.

Below is the most lightweight method I’ve come up with (so far) to get an attachment ID by passing through an attachment URL.

Example usage

Just as an example, this would echo the attachment ID integer of test-image.jpg onto the page:

<?php echo fjarrett_get_attachment_id_by_url( '' ) ?>

This would echo the same result as above because we are ignoring www usage in the URL being passed through:

<?php echo fjarrett_get_attachment_id_by_url( '' ) ?>

This would echo nothing, because the image doesn’t exist in the WordPress uploads directory:

<?php echo fjarrett_get_attachment_id_by_url( '' ) ?>

And finally, this would also echo nothing because the URL of the file is pointing to an external domain:

<?php echo fjarrett_get_attachment_id_by_url( '' ) ?>


We managed to fetch an attachment ID in just a few lines of code with no expensive DB queries! Awesome 😎

Now you can do cool things like turn a URL into an absolute path:

$url = '';
$attachment_id = fjarrett_get_attachment_id_by_url( $url );
$path = ( $attachment_id ) ? get_attached_file( $attachment_id ) : null;
echo $path;

For more information about what was used in this function, please see:

Was this code helpful to you? Let me know in the comments!