The is_ssl() WordPress PHP function determines if the current page is being served using SSL.
Usage
$is_ssl = is_ssl();
Parameters
- None
More information
See WordPress Developer Resources: is_ssl()
Examples
Redirecting to HTTPS
If the current page is not using SSL, redirect the user to the HTTPS version of the same page.
if (!is_ssl()) {
$https_url = 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
wp_redirect($https_url);
exit;
}
Adding SSL indication in footer
Display a message in the footer indicating if the current page is using SSL.
function ssl_indication() {
if (is_ssl()) {
echo '<p>This page is served using SSL.</p>';
} else {
echo '<p>This page is not served using SSL.</p>';
}
}
add_action('wp_footer', 'ssl_indication');
Loading assets conditionally
Load a different CSS file based on whether the page is served using SSL or not.
function load_ssl_assets() {
$stylesheet = is_ssl() ? 'style-ssl.css' : 'style-non-ssl.css';
wp_enqueue_style('my-theme-styles', get_stylesheet_directory_uri() . '/' . $stylesheet);
}
add_action('wp_enqueue_scripts', 'load_ssl_assets');
Using SSL for AJAX requests
Use the current protocol (HTTP or HTTPS) for AJAX requests in WordPress.
function my_ajaxurl() {
echo '<script type="text/javascript">
var ajaxurl = "' . admin_url('admin-ajax.php', is_ssl() ? 'https' : 'http') . '";
</script>';
}
add_action('wp_head', 'my_ajaxurl');
SSL-aware site URL
Create a function that returns the site URL with the appropriate protocol based on SSL usage.
function ssl_aware_site_url() {
return is_ssl() ? site_url('', 'https') : site_url('', 'http');
}
// Example usage:
$link = ssl_aware_site_url() . '/my-page/';