{"id":2650,"date":"2022-07-04T06:44:17","date_gmt":"2022-07-04T05:44:17","guid":{"rendered":"https:\/\/gergely.imreh.net\/blog\/?p=2650"},"modified":"2022-07-04T06:44:19","modified_gmt":"2022-07-04T05:44:19","slug":"100-days-to-offload-wordpress-plugin","status":"publish","type":"post","link":"https:\/\/gergely.imreh.net\/blog\/2022\/07\/100-days-to-offload-wordpress-plugin\/","title":{"rendered":"100 Days to Offload WordPress Plugin"},"content":{"rendered":"\n<p>In the course of pushing myself to write more on this blog, I&#8217;ve come across the <a href=\"https:\/\/100daystooffload.com\/\">#100DaysToOffload<\/a> project. It&#8217;s super simple: write a 100 blogposts in a year in your personal blog to unlock the achievement. It seems like gamification done to the right level, as it&#8217;s not to strenuous (&#8220;write every day&#8221; would likely fail before lift-off), and not too lax (100 blogpost are still quite a stretch to go!). Thus it looked like the right too to trick myself into doing the thing I already wanted.<\/p>\n\n\n\n<p>On the other hand, I&#8217;m one for meta-games, especially when I have doubts whether I stand a chance in the game itself, thus came the idea of do <em>something<\/em> around 100DaysToOffload that might also result in a blogpost. Hence came the &#8220;Hundred Days to Offload&#8221; WordPress Plugin idea: get a bit of coding in, make something useful to see if the game has been &#8220;won&#8221;, an also get one (or more) write-ups out of it.<\/p>\n\n\n\n<p>Spoiler alert: it&#8217;s working now, very barebones, but to the point&#8230; that there&#8217;s a long way to go.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"477\" src=\"https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2022\/07\/hundred-days-to-offload-interface-1024x477.png\" alt=\"Screenshot of the Hundred Days to Offload plugin in the WordPress admin interface.\" class=\"wp-image-2656\" srcset=\"https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2022\/07\/hundred-days-to-offload-interface-1024x477.png 1024w, https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2022\/07\/hundred-days-to-offload-interface-500x233.png 500w, https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2022\/07\/hundred-days-to-offload-interface-768x358.png 768w, https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2022\/07\/hundred-days-to-offload-interface-1200x559.png 1200w, https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2022\/07\/hundred-days-to-offload-interface.png 1210w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>How the Hundred Days to Offload plugin looks in practice (as of now).<\/figcaption><\/figure>\n\n\n\n<p>In the process, that took a couple of days over the weekend, I&#8217;ve revisited PHP, that I used to &#8220;play&#8221; with for projects before, though haven&#8217;t done anything serious, nor made it part of my <a href=\"https:\/\/gergely.imreh.net\/blog\/tag\/lotm\/\">Language of the Month series<\/a>, so far. It was still quite interesting to revisit with more mature eyes of e.g. how good projects look like in the Python ecosystem (where I spend most of my time), and whether lessons learned there are applicable here.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">The Making of a WordPress Plugin<\/h2>\n\n\n\n<p>The plugin itself is pretty straightforward: query WordPress for all the post that were published in the last 1 year, and count them. \ud83e\uddee It could be slightly more complicated, if the goal would be more closely aligned to the &#8220;100 days to offload&#8221; name, that is if one would have to count <em>the number of unique days on which posts were made<\/em>, but let&#8217;s not move the goal-posts here.<\/p>\n\n\n\n<p>Starting from the relevant <a href=\"https:\/\/developer.wordpress.org\/plugins\/\">WordPress Handbook page<\/a> I could have an initial stab at laying out a plugin project structure, though I have to say, that the examples are not going too far in helping with that. This was augmented by a <a href=\"https:\/\/github.com\/topics\/wordpress-plugin\">GitHub wordpress-plugin topic search<\/a>, where I could work from examples a lot better, and see some (maybe too many) best (or at least reasonable) practices.<\/p>\n\n\n\n<p>This lead me to various ecosystem tooling such as <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/getcomposer.org\/\">Composer<\/a>, the PHP dependency manager that I didn&#8217;t know before, and could very much relate to (with it&#8217;s prod\/dev dependencies, scripts definitions, etc, reminding me of <a href=\"https:\/\/python-poetry.org\/\">Poetry<\/a> for Python a bit in spirit)<\/li><li><a href=\"https:\/\/phpstan.org\/\">PHPStan<\/a> static analysis tool, and its &#8220;fun times&#8221; with WordPress code (which can be fixed by various stub projects, etc),<\/li><li>all the &#8220;code standards&#8221; tools that do various fixes (while not being quite a linter and code formatted, but still being a little), for example <a href=\"https:\/\/github.com\/WordPress\/WordPress-Coding-Standards\">wpcs<\/a>. This latter had a fun side effect that have to work from its cutting edge &#8220;develop&#8221; branch to work with PHP 8.1 that I had at hand, so definitely learned through that a few Composer quirks.<\/li><\/ul>\n\n\n\n<p>In the end I had my little snippet of code, run through all these codes, fixed up tabs vs spaces, docs strings, types for return values, dependencies, <em>actual<\/em> bugs of wrong input types to various PHP functions, and also some best practices (which might or might not apply to my little code). It&#8217;s a rabbit hole that could go a lot deeper, though, so cutting a release version at a point. The rest goes <a href=\"https:\/\/github.com\/imrehg\/hundred-days-to-offload-wordpress\/issues\">into an issue tracker<\/a> to pick up one day.<\/p>\n\n\n\n<p>And now, with an MVP (minimum viable plugin;) at hand, I&#8217;ve <a href=\"https:\/\/wordpress.org\/plugins\/developers\/add\/\">submitted<\/a> for review. That&#8217;s just the cherry on the top, or start of new problems with a project to support. Either way I can use the plugin checked out with git just fine.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2022\/07\/Screenshot-2022-07-04-at-11.09.18-1024x484.png\" alt=\"\" class=\"wp-image-2651\"\/><figcaption>Plugin submission, \ud83e\udd1e to see what happens<\/figcaption><\/figure>\n\n\n\n<p>I&#8217;ve definitely picked up <em>a tiny bit<\/em> of PHP for now, even if mostly accidentally, and likely full of bugs and bad practices. It&#8217;s still interesting, and a learning experience. For example data handling is a source of many, various pains in all languages I&#8217;ve across so far. The PHP way (or WordPress way?) of object orientation is also just scratched on the surface and accepted as it goes, but not from a point of solid understanding.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Looking to the future<\/h2>\n\n\n\n<p>From the plugin&#8217;s side it would be good to add some style and looks, as it&#8217;s super dummy and bare bones. But how should it look? Time to learn a bit of design and\/or run some user testing? The mixing of HTML and code is also particularly mind-bending (or awkward, or intriguing, or&#8230;), I would need to look where to set the right boundaries for that, as there could be many.<\/p>\n\n\n\n<p>Adding CI\/CD as well, so definitely various PHP versions can be tested (seems easy), and potentially various WordPress versions as well (seems a lot more hairy) could be a practice and baseline.<\/p>\n\n\n\n<p>Adding some settings to change would help me to learn more plugin development, though this particular plugin might not benefit a lot from it.<\/p>\n\n\n\n<p>Work out how to do proper translations \/ i18n would be probably pretty solid benefit as well, and that needs a lot more digging (variable texts are not straightforward to translate).<\/p>\n\n\n\n<p>Finally, all of these improvements might also just make a few extra blogposts to get towards my 100 Days to Offload. \u270d\ufe0f<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Made a WordPress plugin to see how far off am I towards my 100 blogposts a year project.<\/p>\n","protected":false},"author":1,"featured_media":2653,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[222,223,221],"class_list":["post-2650","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-prog","tag-100daystooffload","tag-php","tag-wordpress-plugin"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>100 Days to Offload WordPress Plugin - ClickedyClick<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gergely.imreh.net\/blog\/2022\/07\/100-days-to-offload-wordpress-plugin\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"100 Days to Offload WordPress Plugin - ClickedyClick\" \/>\n<meta property=\"og:description\" content=\"Made a WordPress plugin to see how far off am I towards my 100 blogposts a year project.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gergely.imreh.net\/blog\/2022\/07\/100-days-to-offload-wordpress-plugin\/\" \/>\n<meta property=\"og:site_name\" content=\"ClickedyClick\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/gergely.imreh\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/gergely.imreh\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-04T05:44:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-07-04T05:44:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2022\/07\/hundred-days-to-offload-plugin.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2664\" \/>\n\t<meta property=\"og:image:height\" content=\"994\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Gergely Imreh\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@imrehg\" \/>\n<meta name=\"twitter:site\" content=\"@imrehg\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gergely Imreh\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2022\\\/07\\\/100-days-to-offload-wordpress-plugin\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2022\\\/07\\\/100-days-to-offload-wordpress-plugin\\\/\"},\"author\":{\"name\":\"Gergely Imreh\",\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/#\\\/schema\\\/person\\\/42391e2ae52c8ed76b37be509a5707b0\"},\"headline\":\"100 Days to Offload WordPress Plugin\",\"datePublished\":\"2022-07-04T05:44:17+00:00\",\"dateModified\":\"2022-07-04T05:44:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2022\\\/07\\\/100-days-to-offload-wordpress-plugin\\\/\"},\"wordCount\":954,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/#\\\/schema\\\/person\\\/42391e2ae52c8ed76b37be509a5707b0\"},\"image\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2022\\\/07\\\/100-days-to-offload-wordpress-plugin\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/07\\\/hundred-days-to-offload-plugin.png\",\"keywords\":[\"100DaysToOffload\",\"PHP\",\"wordpress plugin\"],\"articleSection\":[\"Programming\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2022\\\/07\\\/100-days-to-offload-wordpress-plugin\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2022\\\/07\\\/100-days-to-offload-wordpress-plugin\\\/\",\"url\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2022\\\/07\\\/100-days-to-offload-wordpress-plugin\\\/\",\"name\":\"100 Days to Offload WordPress Plugin - ClickedyClick\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2022\\\/07\\\/100-days-to-offload-wordpress-plugin\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2022\\\/07\\\/100-days-to-offload-wordpress-plugin\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/07\\\/hundred-days-to-offload-plugin.png\",\"datePublished\":\"2022-07-04T05:44:17+00:00\",\"dateModified\":\"2022-07-04T05:44:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2022\\\/07\\\/100-days-to-offload-wordpress-plugin\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2022\\\/07\\\/100-days-to-offload-wordpress-plugin\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2022\\\/07\\\/100-days-to-offload-wordpress-plugin\\\/#primaryimage\",\"url\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/07\\\/hundred-days-to-offload-plugin.png\",\"contentUrl\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/07\\\/hundred-days-to-offload-plugin.png\",\"width\":2664,\"height\":994,\"caption\":\"VSCode view of the Hundred Days to Offload Wordpress Plugin\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2022\\\/07\\\/100-days-to-offload-wordpress-plugin\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"100 Days to Offload WordPress Plugin\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/\",\"name\":\"ClickedyClick\",\"description\":\"Life in real, complex and digital.\",\"publisher\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/#\\\/schema\\\/person\\\/42391e2ae52c8ed76b37be509a5707b0\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/#\\\/schema\\\/person\\\/42391e2ae52c8ed76b37be509a5707b0\",\"name\":\"Gergely Imreh\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1d5be311c5d616a3f4c7dfbc6b736ec817d2508b8c420ec29edb950d33fb4946?s=96&d=retro&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1d5be311c5d616a3f4c7dfbc6b736ec817d2508b8c420ec29edb950d33fb4946?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1d5be311c5d616a3f4c7dfbc6b736ec817d2508b8c420ec29edb950d33fb4946?s=96&d=retro&r=g\",\"caption\":\"Gergely Imreh\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1d5be311c5d616a3f4c7dfbc6b736ec817d2508b8c420ec29edb950d33fb4946?s=96&d=retro&r=g\"},\"description\":\"Physicist, hacker. Enjoys avant-guarde literature probably a bit too much. Open source advocate and contributor, both for software and hardware. Follow these posts on the Fediverse by @gergely@gergely.imreh.net\",\"sameAs\":[\"https:\\\/\\\/gergely.imreh.net\\\/\",\"https:\\\/\\\/www.facebook.com\\\/gergely.imreh\",\"https:\\\/\\\/www.instagram.com\\\/imrehg\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/gergelyimreh\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@GergelyImreh\"],\"url\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/author\\\/gergely\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"100 Days to Offload WordPress Plugin - ClickedyClick","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/gergely.imreh.net\/blog\/2022\/07\/100-days-to-offload-wordpress-plugin\/","og_locale":"en_GB","og_type":"article","og_title":"100 Days to Offload WordPress Plugin - ClickedyClick","og_description":"Made a WordPress plugin to see how far off am I towards my 100 blogposts a year project.","og_url":"https:\/\/gergely.imreh.net\/blog\/2022\/07\/100-days-to-offload-wordpress-plugin\/","og_site_name":"ClickedyClick","article_publisher":"https:\/\/www.facebook.com\/gergely.imreh","article_author":"https:\/\/www.facebook.com\/gergely.imreh","article_published_time":"2022-07-04T05:44:17+00:00","article_modified_time":"2022-07-04T05:44:19+00:00","og_image":[{"width":2664,"height":994,"url":"https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2022\/07\/hundred-days-to-offload-plugin.png","type":"image\/png"}],"author":"Gergely Imreh","twitter_card":"summary_large_image","twitter_creator":"@imrehg","twitter_site":"@imrehg","twitter_misc":{"Written by":"Gergely Imreh","Estimated reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gergely.imreh.net\/blog\/2022\/07\/100-days-to-offload-wordpress-plugin\/#article","isPartOf":{"@id":"https:\/\/gergely.imreh.net\/blog\/2022\/07\/100-days-to-offload-wordpress-plugin\/"},"author":{"name":"Gergely Imreh","@id":"https:\/\/gergely.imreh.net\/blog\/#\/schema\/person\/42391e2ae52c8ed76b37be509a5707b0"},"headline":"100 Days to Offload WordPress Plugin","datePublished":"2022-07-04T05:44:17+00:00","dateModified":"2022-07-04T05:44:19+00:00","mainEntityOfPage":{"@id":"https:\/\/gergely.imreh.net\/blog\/2022\/07\/100-days-to-offload-wordpress-plugin\/"},"wordCount":954,"commentCount":1,"publisher":{"@id":"https:\/\/gergely.imreh.net\/blog\/#\/schema\/person\/42391e2ae52c8ed76b37be509a5707b0"},"image":{"@id":"https:\/\/gergely.imreh.net\/blog\/2022\/07\/100-days-to-offload-wordpress-plugin\/#primaryimage"},"thumbnailUrl":"https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2022\/07\/hundred-days-to-offload-plugin.png","keywords":["100DaysToOffload","PHP","wordpress plugin"],"articleSection":["Programming"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gergely.imreh.net\/blog\/2022\/07\/100-days-to-offload-wordpress-plugin\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/gergely.imreh.net\/blog\/2022\/07\/100-days-to-offload-wordpress-plugin\/","url":"https:\/\/gergely.imreh.net\/blog\/2022\/07\/100-days-to-offload-wordpress-plugin\/","name":"100 Days to Offload WordPress Plugin - ClickedyClick","isPartOf":{"@id":"https:\/\/gergely.imreh.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/gergely.imreh.net\/blog\/2022\/07\/100-days-to-offload-wordpress-plugin\/#primaryimage"},"image":{"@id":"https:\/\/gergely.imreh.net\/blog\/2022\/07\/100-days-to-offload-wordpress-plugin\/#primaryimage"},"thumbnailUrl":"https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2022\/07\/hundred-days-to-offload-plugin.png","datePublished":"2022-07-04T05:44:17+00:00","dateModified":"2022-07-04T05:44:19+00:00","breadcrumb":{"@id":"https:\/\/gergely.imreh.net\/blog\/2022\/07\/100-days-to-offload-wordpress-plugin\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gergely.imreh.net\/blog\/2022\/07\/100-days-to-offload-wordpress-plugin\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/gergely.imreh.net\/blog\/2022\/07\/100-days-to-offload-wordpress-plugin\/#primaryimage","url":"https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2022\/07\/hundred-days-to-offload-plugin.png","contentUrl":"https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2022\/07\/hundred-days-to-offload-plugin.png","width":2664,"height":994,"caption":"VSCode view of the Hundred Days to Offload Wordpress Plugin"},{"@type":"BreadcrumbList","@id":"https:\/\/gergely.imreh.net\/blog\/2022\/07\/100-days-to-offload-wordpress-plugin\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gergely.imreh.net\/blog\/"},{"@type":"ListItem","position":2,"name":"100 Days to Offload WordPress Plugin"}]},{"@type":"WebSite","@id":"https:\/\/gergely.imreh.net\/blog\/#website","url":"https:\/\/gergely.imreh.net\/blog\/","name":"ClickedyClick","description":"Life in real, complex and digital.","publisher":{"@id":"https:\/\/gergely.imreh.net\/blog\/#\/schema\/person\/42391e2ae52c8ed76b37be509a5707b0"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gergely.imreh.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/gergely.imreh.net\/blog\/#\/schema\/person\/42391e2ae52c8ed76b37be509a5707b0","name":"Gergely Imreh","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/1d5be311c5d616a3f4c7dfbc6b736ec817d2508b8c420ec29edb950d33fb4946?s=96&d=retro&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1d5be311c5d616a3f4c7dfbc6b736ec817d2508b8c420ec29edb950d33fb4946?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1d5be311c5d616a3f4c7dfbc6b736ec817d2508b8c420ec29edb950d33fb4946?s=96&d=retro&r=g","caption":"Gergely Imreh"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/1d5be311c5d616a3f4c7dfbc6b736ec817d2508b8c420ec29edb950d33fb4946?s=96&d=retro&r=g"},"description":"Physicist, hacker. Enjoys avant-guarde literature probably a bit too much. Open source advocate and contributor, both for software and hardware. Follow these posts on the Fediverse by @gergely@gergely.imreh.net","sameAs":["https:\/\/gergely.imreh.net\/","https:\/\/www.facebook.com\/gergely.imreh","https:\/\/www.instagram.com\/imrehg\/","https:\/\/www.linkedin.com\/in\/gergelyimreh\/","https:\/\/www.youtube.com\/@GergelyImreh"],"url":"https:\/\/gergely.imreh.net\/blog\/author\/gergely\/"}]}},"_links":{"self":[{"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/posts\/2650","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/comments?post=2650"}],"version-history":[{"count":10,"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/posts\/2650\/revisions"}],"predecessor-version":[{"id":2664,"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/posts\/2650\/revisions\/2664"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/media\/2653"}],"wp:attachment":[{"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/media?parent=2650"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/categories?post=2650"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/tags?post=2650"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}