<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Wordpress on Samarthya</title><link>https://samarthya.me/tags/wordpress/</link><description>Recent content in Wordpress on Samarthya</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© Samarthya 2018-2026. All rights reserved.</copyright><lastBuildDate>Mon, 26 Oct 2026 07:10:00 -0400</lastBuildDate><atom:link href="https://samarthya.me/tags/wordpress/index.xml" rel="self" type="application/rss+xml"/><item><title>Moving to Hugo, part 2: The migration playbook</title><link>https://samarthya.me/posts/moving-to-hugo-2-the-migration-playbook/</link><pubDate>Mon, 26 Oct 2026 07:10:00 -0400</pubDate><guid>https://samarthya.me/posts/moving-to-hugo-2-the-migration-playbook/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; Ten phases, in the order that kept my risk low. Each one ends with something you can check, so you always&#10;know whether it&amp;rsquo;s safe to move on.&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;The numbers come from my own move: &lt;strong&gt;137 WordPress posts&lt;/strong&gt; from six years, a few hundred images, and a domain&#10;that also carried email. Your numbers will differ; the order shouldn&amp;rsquo;t.&lt;/p&gt;</description></item><item><title>Moving to Hugo, part 1: Why Hugo</title><link>https://samarthya.me/posts/moving-to-hugo-1-why-hugo/</link><pubDate>Mon, 26 Oct 2026 07:00:00 -0400</pubDate><guid>https://samarthya.me/posts/moving-to-hugo-1-why-hugo/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; After the blog was broken into, I had to decide where it would live next. This is how I made that choice,&#10;written so you can reuse the reasoning even if you end up somewhere else.&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;The story of the break-in is in &lt;a href="../rebuilding-1-the-day-the-blog-fell/" &gt;Rebuilding samarthya.me&lt;/a&gt;. This&#10;series is the practical companion: &lt;strong&gt;why Hugo&lt;/strong&gt;, &lt;strong&gt;how to migrate step by step&lt;/strong&gt;, and &lt;strong&gt;what living with it&#10;is like&lt;/strong&gt;. My own site is the worked example throughout.&lt;/p&gt;</description></item><item><title>Rebuilding samarthya.me, part 2: Salvaging the content</title><link>https://samarthya.me/posts/rebuilding-2-salvaging-the-content/</link><pubDate>Sun, 25 Oct 2026 12:10:00 -0400</pubDate><guid>https://samarthya.me/posts/rebuilding-2-salvaging-the-content/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; Text is easy to save. Dates, images, code blocks and six years of links are where a migration quietly loses&#10;things. Here&amp;rsquo;s what it took to bring them across.&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;h2 class="relative group"&gt;The raw material&#10; &lt;div id="the-raw-material" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-raw-material" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;WordPress can export everything as one XML file (WXR). Together with a database dump and a copy of the&#10;uploads folder, that&amp;rsquo;s the whole site. The export held &lt;strong&gt;139 published posts&lt;/strong&gt;. Two were the attacker&amp;rsquo;s, so&#10;they were excluded permanently: &lt;strong&gt;137 posts&lt;/strong&gt; to convert.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/rebuilding-2-salvaging-the-content/feature.jpg"/></item><item><title>Rebuilding samarthya.me, part 1: The day the blog fell</title><link>https://samarthya.me/posts/rebuilding-1-the-day-the-blog-fell/</link><pubDate>Sun, 25 Oct 2026 12:00:00 -0400</pubDate><guid>https://samarthya.me/posts/rebuilding-1-the-day-the-blog-fell/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; On 10 October 2026 my blog stopped being mine. This series is the diary of getting it back, and of moving&#10;to something simpler: from shared hosting and WordPress to a static site on GitHub Pages behind Cloudflare.&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;h2 class="relative group"&gt;What I found&#10; &lt;div id="what-i-found" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-i-found" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;The site had been running WordPress on shared hosting since 2019. When things started to look wrong, a closer&#10;look turned up the classic signs of a compromise:&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/rebuilding-1-the-day-the-blog-fell/feature.jpg"/></item><item><title>Salvaging six years of posts</title><link>https://samarthya.me/daily/2026/10/salvaging-six-years-of-posts/</link><pubDate>Fri, 23 Oct 2026 20:00:00 -0400</pubDate><guid>https://samarthya.me/daily/2026/10/salvaging-six-years-of-posts/</guid><description>&lt;p&gt;Exported every post from the old site and went through the export carefully. The text survived. Many of the images did not: the server was serving error pages where pictures used to be. Also found a couple of &amp;ldquo;posts&amp;rdquo; I never wrote. Those stay out.&lt;/p&gt;</description></item><item><title>A copy of the crime scene</title><link>https://samarthya.me/daily/2026/10/a-copy-of-the-crime-scene/</link><pubDate>Thu, 22 Oct 2026 20:00:00 -0400</pubDate><guid>https://samarthya.me/daily/2026/10/a-copy-of-the-crime-scene/</guid><description>&lt;p&gt;Took the first full copy of the old site&amp;rsquo;s database today.&lt;/p&gt;&#10;&lt;p&gt;It was a strange thing to read. My own account was gone. &lt;strong&gt;Every post, all 207 of them, belonged to the&#10;attacker&amp;rsquo;s account&lt;/strong&gt;, the one &amp;ldquo;registered&amp;rdquo; on 10 October 1970. 46 of my posts were sitting in drafts.&lt;/p&gt;</description></item><item><title>The blog went down</title><link>https://samarthya.me/daily/2026/10/the-blog-went-down/</link><pubDate>Sat, 10 Oct 2026 21:00:00 -0400</pubDate><guid>https://samarthya.me/daily/2026/10/the-blog-went-down/</guid><description>&lt;p&gt;The old WordPress blog was compromised today. Someone got in, left files behind that had no business being&#10;there, and the site stopped being something I could trust.&lt;/p&gt;&#10;&lt;p&gt;First moves: take it offline, change every password that touched it, and keep a copy of everything for later.&#10;Six years of posts were in there. Tomorrow&amp;rsquo;s problem is what can be saved.&lt;/p&gt;</description></item><item><title>The defences went off</title><link>https://samarthya.me/daily/2026/10/the-defences-went-off/</link><pubDate>Fri, 09 Oct 2026 20:00:00 -0400</pubDate><guid>https://samarthya.me/daily/2026/10/the-defences-went-off/</guid><description>&lt;p&gt;&lt;em&gt;Written on 26 October from the old site&amp;rsquo;s own records. At the time, I didn&amp;rsquo;t know any of this.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Just after midnight (UTC), an administrator account &amp;ldquo;registered in 1970&amp;rdquo; logged in. A minute later, &lt;strong&gt;20 plugins&#10;were switched off in the same second&lt;/strong&gt;, including the one that blocks password guessing.&lt;/p&gt;</description></item><item><title>Casino posts under my name</title><link>https://samarthya.me/daily/2026/10/casino-posts-under-my-name/</link><pubDate>Thu, 08 Oct 2026 20:00:00 -0400</pubDate><guid>https://samarthya.me/daily/2026/10/casino-posts-under-my-name/</guid><description>&lt;p&gt;&lt;em&gt;Written on 26 October from the old site&amp;rsquo;s own records. At the time, I didn&amp;rsquo;t know any of this.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;21 successful logins&lt;/strong&gt; today, more than I&amp;rsquo;d make in a year. Early in the morning (UTC), the first spam post went up:&#10;casino and betting &amp;ldquo;reviews&amp;rdquo; in German, Spanish, Greek, Turkish, Finnish… Over the next two days there were&#10;&lt;strong&gt;55&lt;/strong&gt; of them, published as if I&amp;rsquo;d written them.&lt;/p&gt;</description></item><item><title>The password worked</title><link>https://samarthya.me/daily/2026/10/the-password-worked/</link><pubDate>Wed, 07 Oct 2026 20:00:00 -0400</pubDate><guid>https://samarthya.me/daily/2026/10/the-password-worked/</guid><description>&lt;p&gt;&lt;em&gt;Written on 26 October from the old site&amp;rsquo;s own records. At the time, I didn&amp;rsquo;t know any of this.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Two successful logins today. The next day there would be 21.&lt;/p&gt;</description></item><item><title>Someone was knocking</title><link>https://samarthya.me/daily/2026/09/someone-was-knocking/</link><pubDate>Wed, 30 Sep 2026 20:00:00 -0400</pubDate><guid>https://samarthya.me/daily/2026/09/someone-was-knocking/</guid><description>&lt;p&gt;&lt;em&gt;Written on 26 October from the old site&amp;rsquo;s own records. At the time, I didn&amp;rsquo;t know any of this.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;The login-protection plugin counted &lt;strong&gt;165 failed logins&lt;/strong&gt; today. Bots try passwords on every WordPress site,&#10;all year round, so a few a day is normal. This was the busiest single day in its records.&lt;/p&gt;</description></item></channel></rss>