How To: Use FitVids.js with WordPress for Responsive Videos

16th April 2014

Let me set the scene. You’ve got a great responsive layout, you’ve tackled the navigation menu and your typography all looks spot on even when you view it on your iPad mini. Then you go to insert a video in your blog and you realise that it’s shooting out somewhere into oblivion. Nuts.

Thankfully some decent chaps have come up with a solution for that, which you can integrate into any WordPress theme with relative ease. It’s called FitVids.js, and it’s a jQuery plugin which will make all of your video embeds magically responsive. Here’s how you get it working:

Step One: Download FitVids.js

Go download the FitVids.js script fromĀ

Once you’ve done that, you’ll need to put it somewhere in the folder for your theme. Many will already have a ‘js’ folder which is a good place to copy it. Otherwise you could create your own, or see where the other scripts are stored.

Step Two: Enqueue the script

Next you need to call the script, which is best done using wp_enqueue. I wrote a whole post on how to do this correctly, called ‘How to: Correctly Include JavaScript Files in WordPress Themes‘.

Basically this is what you’re going to want to put in your functions.php file:

We’re registering the script and then enqueuing it in the front end of the site, but not in admin.

NB: Because FitVids is a jQuery plugin you’ll see that you need jQuery running for it to work. If your theme isn’t already loading jQuery, you can add it yourself by placing this above wp_register_script:

Step Three: Target the video container

The last step is to target your video container. The script as per the example on GitHub looks like this:

Seeing as we’re working with WordPress we’re going to need to modify this ever so slightly. We’re also going to want to go back to our functions.php file and call the script correctly in wp_footer rather than simply copy and pasting it into one of our other template files.

The final script to paste into functions.php is this:

The last thing to say is of course that #things-with-videos needs to be changed to reflect the container that holds your videos. On this site that means setting it to .post but it may also be, for example, .entry-content. You need to refer to your theme files to see what your post content is wrapped in.


I’ve included a video of Sarah Jarosz being brilliant so that you can see FitVids.js in action.


  • Justin

    14th May 2014 at 5:48 am

    I think you have some errors in your code where you say “The final script to paste into functions.php is this:” I got a php error on the first line (“unexpected ?”)

    • Jo

      14th May 2014 at 1:43 pm

      Hi Justin,

      Thanks for your comment. Sorry you’ve had problems, it seems that when I was switching backwards and forwards between the visual and text editors in WP it’s messed with the code between my pre tags.

      I’ve sorted it out now, so if you try again with the code above it should work for you.


Leave a Reply

What our customers say:

Jo has been personable and efficient in setting up my website. She did a great job of understanding what I wanted and providing guidance from her wealth of experience. She has explained things in a non-technical way and has been very responsive, patient and flexible in working with me. In short, Jo is great value for money and easy to work with.

Vanessa Rhone (Director, Venus Works)