Force SSL with WordPress

By  on  

WordPress, the popular blogging CMS platform, is used as an all-purpose site software these days.  The difficulty in using all-purposes solutions is that they are often difficult to customize when edge cases pop up;  one of those edge cases can be forcing SSL.  Many form pages, for example, will be secured to gain user trust before filling them out.  WordPress provides an excellent method to secure individual pages!  Here's how you can force SSL within specific WordPress pages!

The PHP

To secure a specific WordPress post or page, you'll need to know its ID.  When you know its ID, it's securing the page is easy:

function force_ssl($force_ssl, $id = 0) {
	// A list of posts that should be SSL
	$ssl_posts = array(1, 12, 19);

	if(in_array($id, $ssl_posts)) {
		$force_ssl = true;
	}
    return $force_ssl;
}
add_filter('force_ssl' , 'force_ssl', 1, 3);

The force_ssl hook allows for us to check the post ID and force SSL if the post ID is in array of posts that should be secured!  Aren't WordPress hooks great to work with?

Recent Features

  • By
    Interview with a Pornhub Web Developer

    Regardless of your stance on pornography, it would be impossible to deny the massive impact the adult website industry has had on pushing the web forward. From pushing the browser's video limits to pushing ads through WebSocket so ad blockers don't detect them, you have...

  • By
    Create a CSS Cube

    CSS cubes really showcase what CSS has become over the years, evolving from simple color and dimension directives to a language capable of creating deep, creative visuals.  Add animation and you've got something really neat.  Unfortunately each CSS cube tutorial I've read is a bit...

Incredible Demos

  • By
    Chris Coyier’s Favorite CodePen Demos II

    Hey everyone! Before we get started, I just want to say it's damn hard to pick this few favorites on CodePen. Not because, as a co-founder of CodePen, I feel like a dad picking which kid he likes best (RUDE). But because there is just so...

  • By
    Create a Dojo Lightbox with dojox.image.Lightbox

    One of the reasons I love the Dojo Toolkit is that it seems to have everything.  No scouring for a plugin from this site and then another plugin from that site to build my application.  Buried within the expansive dojox namespace of Dojo is

Discussion

  1. Sunny

    Is it feasible to turn off cookies for secured pages? If so, how?

  2. Lynne

    Wondering what file you paste in the code above to secure a page/s with SSL.
    Also, are you saying that this piece of code:
    $ssl_posts = array(1, 12, 19); you simply replace those numbers with your page id?
    And with this code:
    add_filter(‘force_ssl’ , ‘force_ssl’, 1, 3); what is it’s purpose and do you also replace these numbers?
    I’d also be interested to know more about what Keith Henry has said about cookies potentially being sent unencrypted to non-SSL pages.

  3. Chris Waters

    Does this filter still exist? I can’t find any reference to it in the WordPress docs or code. As a result, I can’t seem to get this snippet working.

  4. Works like a charm!

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!