[{"data":1,"prerenderedAt":421},["ShallowReactive",2],{"blog:2007:notes-on-the-move-to-wordpress":3,"blogMore-Technology":365,"comments-notes-on-the-move-to-wordpress":378},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"category":11,"tags":12,"excerpt":15,"body":30,"_type":356,"_id":357,"_source":358,"_file":359,"_stem":360,"_extension":361,"url":362,"wordCount":363,"minutes":364,"commentCount":349},"/blog/2007/notes-on-the-move-to-wordpress","2007",false,"en","Notes on the move to WordPress","The change to WordPress from Subtext went without major hitch. This was great considering I was tweaking the design and articles right up to going on holiday. I wouldn’t do this in a professional environment but my blog is a sandpit for such dare-devil risk taking.","2007-09-04T10:35:34+00:00","Technology",[13,14],"Subtext","WordPress",{"type":16,"children":17},"root",[18,25],{"type":19,"tag":20,"props":21,"children":22},"element","p",{},[23],{"type":24,"value":9},"text",{"type":19,"tag":20,"props":26,"children":27},{},[28],{"type":24,"value":29},"Here are my notes on the experience.",{"type":16,"children":31,"toc":348},[32,36,40,47,52,58,63,174,179,185,222,230,236,249,272,278,292,314,328,333,342],{"type":19,"tag":20,"props":33,"children":34},{},[35],{"type":24,"value":9},{"type":19,"tag":20,"props":37,"children":38},{},[39],{"type":24,"value":29},{"type":19,"tag":41,"props":42,"children":44},"h2",{"id":43},"spam",[45],{"type":24,"value":46},"Spam",{"type":19,"tag":20,"props":48,"children":49},{},[50],{"type":24,"value":51},"Akismet is good but I prefer the invisible captcha that Subtext was using. I’ve gone from dealing with 1 rogue spam a month to 1-2 held for moderation a day.",{"type":19,"tag":41,"props":53,"children":55},{"id":54},"view-counts",[56],{"type":24,"value":57},"View counts",{"type":19,"tag":20,"props":59,"children":60},{},[61],{"type":24,"value":62},"The WordPress import format doesn’t deal with view counts. I wrote a query against Subtext to list them, a query in MySQL to identify article numbers then manually executed",{"type":19,"tag":64,"props":65,"children":70},"pre",{"code":66,"language":67,"meta":68,"className":69,"style":68},"UPDATE post_meta SET meta_value = meta_value + 123 WHERE meta_key = 'views' AND article_id = 456\n","sql","","language-sql shiki shiki-themes everforest-light dracula",[71],{"type":19,"tag":72,"props":73,"children":74},"code",{"__ignoreMap":68},[75],{"type":19,"tag":76,"props":77,"children":80},"span",{"class":78,"line":79},"line",1,[81,87,93,98,103,109,113,118,124,129,134,138,144,150,155,160,165,169],{"type":19,"tag":76,"props":82,"children":84},{"style":83},"--shiki-default:#F85552;--shiki-dark:#FF79C6",[85],{"type":24,"value":86},"UPDATE",{"type":19,"tag":76,"props":88,"children":90},{"style":89},"--shiki-default:#5C6A72;--shiki-dark:#F8F8F2",[91],{"type":24,"value":92}," post_meta ",{"type":19,"tag":76,"props":94,"children":95},{"style":83},[96],{"type":24,"value":97},"SET",{"type":19,"tag":76,"props":99,"children":100},{"style":89},[101],{"type":24,"value":102}," meta_value ",{"type":19,"tag":76,"props":104,"children":106},{"style":105},"--shiki-default:#F57D26;--shiki-dark:#FF79C6",[107],{"type":24,"value":108},"=",{"type":19,"tag":76,"props":110,"children":111},{"style":89},[112],{"type":24,"value":102},{"type":19,"tag":76,"props":114,"children":115},{"style":105},[116],{"type":24,"value":117},"+",{"type":19,"tag":76,"props":119,"children":121},{"style":120},"--shiki-default:#DF69BA;--shiki-dark:#BD93F9",[122],{"type":24,"value":123}," 123",{"type":19,"tag":76,"props":125,"children":126},{"style":83},[127],{"type":24,"value":128}," WHERE",{"type":19,"tag":76,"props":130,"children":131},{"style":89},[132],{"type":24,"value":133}," meta_key ",{"type":19,"tag":76,"props":135,"children":136},{"style":105},[137],{"type":24,"value":108},{"type":19,"tag":76,"props":139,"children":141},{"style":140},"--shiki-default:#8DA101;--shiki-dark:#E9F284",[142],{"type":24,"value":143}," '",{"type":19,"tag":76,"props":145,"children":147},{"style":146},"--shiki-default:#8DA101;--shiki-dark:#F1FA8C",[148],{"type":24,"value":149},"views",{"type":19,"tag":76,"props":151,"children":152},{"style":140},[153],{"type":24,"value":154},"'",{"type":19,"tag":76,"props":156,"children":157},{"style":83},[158],{"type":24,"value":159}," AND",{"type":19,"tag":76,"props":161,"children":162},{"style":89},[163],{"type":24,"value":164}," article_id ",{"type":19,"tag":76,"props":166,"children":167},{"style":105},[168],{"type":24,"value":108},{"type":19,"tag":76,"props":170,"children":171},{"style":120},[172],{"type":24,"value":173}," 456\n",{"type":19,"tag":20,"props":175,"children":176},{},[177],{"type":24,"value":178},"For every article replacing 123 with Subtext’s view count and 456 with the WordPress article id. As my blog was previously on Blogger.com which doesn’t provide view counts they are a year or so lower than reality.",{"type":19,"tag":41,"props":180,"children":182},{"id":181},"preserving-links",[183],{"type":24,"value":184},"Preserving links",{"type":19,"tag":20,"props":186,"children":187},{},[188,190,196,198,204,206,212,214,220],{"type":24,"value":189},"I chose a custom permalink format of ",{"type":19,"tag":72,"props":191,"children":193},{"className":192},[],[194],{"type":24,"value":195},"/blog/%year%/%monthnum%/%day%/%postname%",{"type":24,"value":197}," which gives ",{"type":19,"tag":72,"props":199,"children":201},{"className":200},[],[202],{"type":24,"value":203},"https://damieng.com/blog/2007/first-of-october",{"type":24,"value":205}," for posts. This is similar to the old format of ",{"type":19,"tag":72,"props":207,"children":209},{"className":208},[],[210],{"type":24,"value":211},"https://damieng.com/blog/2007/first-of-october.aspx",{"type":24,"value":213}," but obviously has the file extension and www dropped. Apache’s ",{"type":19,"tag":72,"props":215,"children":217},{"className":216},[],[218],{"type":24,"value":219},".htaccess",{"type":24,"value":221}," file made redirecting the old links a breeze which was important to me as my blog suffered big drops in Technorati and Google when I last moved from Blogger.com to Subtext. The required lines to achieve this, redirect /blog/ and keep the RSS going were:",{"type":19,"tag":64,"props":223,"children":225},{"code":224},"RedirectMatch permanent ^/blog/archive/(.*).aspx$ //damieng.com/blog/$1\nRedirectMatch permanent ^/blog/$ //damieng.com/\nRedirectMatch permanent ^/blog$ //damieng.com/\nRedirectMatch permanent ^/blog/rss.aspx //damieng.com/feed\nRedirectMatch permanent ^/blog/Rss.aspx //damieng.com/feed\n",[226],{"type":19,"tag":72,"props":227,"children":228},{"__ignoreMap":68},[229],{"type":24,"value":224},{"type":19,"tag":41,"props":231,"children":233},{"id":232},"editing",[234],{"type":24,"value":235},"Editing",{"type":19,"tag":20,"props":237,"children":238},{},[239,241,247],{"type":24,"value":240},"The default editor is fast and for the most part okay although it lacks the ability to change from the default paragraph tag to headings, pre-formatted blocks, block-quotes etc. It also very annoyingly tries to be helpful by turning carriage returns into new paragraphs which would be fine if it was clever enough to leave ",{"type":19,"tag":72,"props":242,"children":244},{"className":243},[],[245],{"type":24,"value":246},"\u003Cpre>",{"type":24,"value":248}," blocks well alone.",{"type":19,"tag":20,"props":250,"children":251},{},[252,261,263,270],{"type":19,"tag":253,"props":254,"children":258},"a",{"href":255,"rel":256},"https://www.stevestreeting.com",[257],"nofollow",[259],{"type":24,"value":260},"Steve",{"type":24,"value":262}," suggested ",{"type":19,"tag":253,"props":264,"children":267},{"href":265,"rel":266},"https://www.deanlee.cn/wordpress/fckeditor-for-wordpress-plugin/",[257],[268],{"type":24,"value":269},"FCKeditor",{"type":24,"value":271}," which is very slow at initializing on my machine and also tends to really mess up my HTML :(",{"type":19,"tag":41,"props":273,"children":275},{"id":274},"going-forward",[276],{"type":24,"value":277},"Going forward",{"type":19,"tag":20,"props":279,"children":280},{},[281,283,290],{"type":24,"value":282},"There are still a number of things I want to do including further deviating from the ",{"type":19,"tag":253,"props":284,"children":287},{"href":285,"rel":286},"https://deanjrobinson.com/wordpress/redoable",[257],[288],{"type":24,"value":289},"Redoable",{"type":24,"value":291}," theme. Lightening up the look somewhat perhaps with some soft gradients and alternative typefaces will go a long-way. I’ll also want to do a proper logo at some point as soon as I can decide what it should look like.",{"type":19,"tag":20,"props":293,"children":294},{},[295,297,304,305,312],{"type":24,"value":296},"Being that WordPress is a higher visibility target ",{"type":19,"tag":253,"props":298,"children":301},{"href":299,"rel":300},"https://www.phrixus.co.uk",[257],[302],{"type":24,"value":303},"Phrixus",{"type":24,"value":262},{"type":19,"tag":253,"props":306,"children":309},{"href":307,"rel":308},"https://www.michiknows.com/2007/02/12/who-else-wants-to-hide-their-wordpress-admin-folder/",[257],[310],{"type":24,"value":311},"hiding the wp-admin directory",{"type":24,"value":313}," as an extra level of protection against automated vulnerability/brute-force attacks which I shall also try.",{"type":19,"tag":20,"props":315,"children":316},{},[317,319,326],{"type":24,"value":318},"I need to speak to ",{"type":19,"tag":253,"props":320,"children":323},{"href":321,"rel":322},"https://www.gringod.com",[257],[324],{"type":24,"value":325},"GrinGod",{"type":24,"value":327}," about the download counting mechanism he mentioned too.",{"type":19,"tag":20,"props":329,"children":330},{},[331],{"type":24,"value":332},"The original Blogger.com content from a year or two ago will be phased out/removed as it would appear it dilutes my page rank having almost-identical content elsewhere not to mention messing up traffic stats etc.",{"type":19,"tag":20,"props":334,"children":335},{},[336],{"type":19,"tag":337,"props":338,"children":339},"em",{},[340],{"type":24,"value":341},"[)amien",{"type":19,"tag":343,"props":344,"children":345},"style",{},[346],{"type":24,"value":347},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":68,"searchDepth":349,"depth":349,"links":350},2,[351,352,353,354,355],{"id":43,"depth":349,"text":46},{"id":54,"depth":349,"text":57},{"id":181,"depth":349,"text":184},{"id":232,"depth":349,"text":235},{"id":274,"depth":349,"text":277},"markdown","content:blog:2007:notes-on-the-move-to-wordpress.md","content","blog/2007/notes-on-the-move-to-wordpress.md","blog/2007/notes-on-the-move-to-wordpress","md","/blog/2007/notes-on-the-move-to-wordpress/",525,3,[366,370,374],{"title":367,"date":368,"url":369},"VTX5000: Part 4 - Communications ","2026-05-06T10:19:24.727Z","/blog/2026/vtx5000-part-4-comms-routines/",{"title":371,"date":372,"url":373},"VTX5000: Part 3 - Software ROM","2026-04-15T23:00:00.000Z","/blog/2026/vtx5000-part-3-software-rom/",{"title":375,"date":376,"url":377},"VTX5000: Part 2 - Hardware","2026-03-30T23:00:00.000Z","/blog/2026/prism-vtx5000-part-2/",[379,401],{"_path":380,"_dir":381,"_draft":6,"_partial":6,"_locale":7,"title":382,"description":383,"id":384,"name":385,"email":386,"avatar":387,"url":388,"date":389,"body":390,"_type":356,"_id":398,"_source":358,"_file":399,"_stem":400,"_extension":361},"/comments/notes-on-the-move-to-wordpress/2604","notes-on-the-move-to-wordpress","2604","Not really the best person to comment as my blog is still in bits but I've found the TextMate Wordpress bundle to be very cool indeed. But then I prefer to post in Markup having found too many glitches with the RTE",2604,"Rob","robert@xset.co.uk","https://www.gravatar.com/avatar/6f7e0d744ebc501ff8cae06401d36e76?r=pg&d=retro","https://xset.co.uk/","2007-09-04T15:05:04",{"type":16,"children":391,"toc":396},[392],{"type":19,"tag":20,"props":393,"children":394},{},[395],{"type":24,"value":383},{"title":68,"searchDepth":349,"depth":349,"links":397},[],"content:comments:notes-on-the-move-to-wordpress:2604.md","comments/notes-on-the-move-to-wordpress/2604.md","comments/notes-on-the-move-to-wordpress/2604",{"_path":402,"_dir":381,"_draft":6,"_partial":6,"_locale":7,"title":403,"description":404,"id":405,"name":406,"email":407,"avatar":408,"url":255,"date":409,"body":410,"_type":356,"_id":418,"_source":358,"_file":419,"_stem":420,"_extension":361},"/comments/notes-on-the-move-to-wordpress/2582","2582","I really like FCKEditor - it does take a few seconds to load up but I think it's worth it. I've never really had any issues with HTML, I occasionally use the 'Source' button particularly when I want to embed a YouTube video or something, but otherwise I generally don't use it.",2582,"steve","steve@stevestreeting.com","https://www.gravatar.com/avatar/fbe8cc9ac5bc8797382e01e10f5f8e33?r=pg&d=retro","2007-09-04T11:48:01",{"type":16,"children":411,"toc":416},[412],{"type":19,"tag":20,"props":413,"children":414},{},[415],{"type":24,"value":404},{"title":68,"searchDepth":349,"depth":349,"links":417},[],"content:comments:notes-on-the-move-to-wordpress:2582.md","comments/notes-on-the-move-to-wordpress/2582.md","comments/notes-on-the-move-to-wordpress/2582",1779264570635]