diff --git a/noblogs-wp-ssl.php b/noblogs-wp-ssl.php
index 03383f638c3fc16a3329f7104ed57569a5204f0b..63722783a9adf8bc6c85a326622065bbebda7fc0 100644
--- a/noblogs-wp-ssl.php
+++ b/noblogs-wp-ssl.php
@@ -1,8 +1,8 @@
 <?php
 /*
-Plugin Name: NoblogsWpSSL
+Plugin Name: Noblogs Wp SSL
 Plugin URI: https://git.autistici.org/ai/noblogs-wp-ssl
-Description: Rewrite internal URLS to use HTTPS
+Description: Rewrite internal URLS to use HTTPS.
 Version: 0.1
 Author: Cloudflare, sand
 License: GPLv2
@@ -17,7 +17,15 @@ if ( !function_exists('add_action') ) {
     exit;
 }
 
-function wp_ssl_buffer_wrapup($buffer) {
+function rewrite_links($buffer) {
+        // replace href or src attributes within script, link, base, and img tags with just "//" for protocol
+        $re     = "/(<(?:script|link|base|img|form)(?:[^>]*)(?:href|src|action)=[\"'])http:\\/\\/([^.]+\.noblogs\.org)/i";
+        $subst  = "$1https://$2";
+        return preg_replace($re, $subst, $buffer);
+}
+
+// This is a filter function that act on the whole output buffer
+function noblogs_wp_ssl_buffer_wrapup($buffer) {
     // skip rewrite if not on HTTPS
     if (empty($_SERVER['HTTPS'])) {
         return $buffer;
@@ -36,10 +44,7 @@ function wp_ssl_buffer_wrapup($buffer) {
     }
 
     if (is_null($content_type) || substr($content_type, 0, 9) === 'text/html') {
-        // replace href or src attributes within script, link, base, and img tags with just "//" for protocol
-        $re     = "/(<(?:script|link|base|img|form)(?:[^>]*)(?:href|src|action)=[\"'])http:\\/\\/([^.]+\.noblogs\.org)/i";
-        $subst  = "$1https://$2";
-        $return = preg_replace($re, $subst, $buffer);
+        $return = rewrite_links($buffer);
 
         // on regex error, skip overwriting buffer
         if ($return) {
@@ -50,8 +55,20 @@ function wp_ssl_buffer_wrapup($buffer) {
     return $buffer;    
 }
 
-function wp_ssl_buffer_init() {
-    ob_start('wp_ssl_buffer_wrapup');
+// This is a filter function that act on the post $content 
+function noblogs_wp_ssl_content_filter($content) {
+    // skip rewrite if not on HTTPS
+    if (empty($_SERVER['HTTPS'])) {
+        return $buffer;
+    }
+
+    $return = rewrite_links($content);
+    if ($return) {
+        $content = $return;
+    }
+
+    return $content;
 }
 
-add_action('plugins_loaded', 'wp_ssl_buffer_init');
+// ob_start('wp_ssl_buffer_wrapup');
+add_filter('the_content', 'noblogs_wp_ssl_content_filter');