Force SSL with WordPress
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?
![Serving Fonts from CDN]()
For maximum performance, we all know we must put our assets on CDN (another domain). Along with those assets are custom web fonts. Unfortunately custom web fonts via CDN (or any cross-domain font request) don't work in Firefox or Internet Explorer (correctly so, by spec) though...
![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...
![Digg-Style Dynamic Share Widget Using MooTools]()
I've always seen Digg as a very progressive website. Digg uses experimental, ajaxified methods for comments and mission-critical functions. One nice touch Digg has added to their website is their hover share widget. Here's how to implement that functionality on your site...
![iPhone Checkboxes Using MooTools]()
One of the sweet user interface enhancements provided by Apple's iPhone is their checkbox-slider functionality. Thomas Reynolds recently released a jQuery plugin that allows you to make your checkboxes look like iPhone sliders. Here's how to implement that functionality using the beloved...
Be very careful securing some pages and not others on the same site – any cookies created in the secure area (for instance for login or user details) will be sent unencrypted to non-SSL pages, making interception attacks easy.
Is it feasible to turn off cookies for secured pages? If so, how?
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.
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.
Works like a charm!