Respostas:
Aqui está um guia completo - Habilite o suporte completo para SSL no Wordpress
Uma verificação simples is_ssl()
deve fazer isso:
add_action( 'plugins_loaded', 'wpse_2718_force_ssl' );
function wpse_2718_force_ssl()
{
if ( is_ssl() )
return;
wp_redirect(
'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']
);
exit;
}
Mas eu faria isso no .htaccess para capturar imagens também:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Para o ISS, veja esta resposta no Stack Overflow .
Adicione esta regra à parte superior do arquivo .htaccess:
# BEGIN Force SSL
# This should be the first rule before other rules
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>
# END Force SSL
Isso deve ocorrer antes das regras do WordPress.
Eu usei o Really Simple SSL em todos os sites de meus clientes e funciona muito bem. Se você não deseja modificar o código, basta instalar este plugin e configurá-lo.