{
    "version": "https://jsonfeed.org/version/1",
    "user_comment": "This feed allows you to read the posts from this site in any feed reader that supports the JSON Feed format. To add this feed to your reader, copy the following URL -- https://2023.wp-devil.com/category/development/feed/json/ -- and add it your reader.",
    "home_page_url": "https://2023.wp-devil.com/category/development/",
    "feed_url": "https://2023.wp-devil.com/category/development/feed/json/",
    "title": "WP Devil 2023",
    "description": "WordPress, ClassicPress, Music and Geekdom",
    "items": [
        {
            "id": "https://2023.wp-devil.com/testing-fediverse-publishing/",
            "url": "https://2023.wp-devil.com/testing-fediverse-publishing/",
            "title": "Testing Fediverse Publishing",
            "content_html": "<p>Currently playing around and testing the ActivityPub plugin for WordPress, with the latest PR so its also working with ClassicPress v2.<br>\nLets see how far this is gonna work out.</p>\n<p>For better or worse, there should now be a toot with image attached, with a useful alt text, plus some fancy tags (if the plugin converts categories to tags, that is).</p>\n",
            "content_text": "Currently playing around and testing the ActivityPub plugin for WordPress, with the latest PR so its also working with ClassicPress v2.\nLets see how far this is gonna work out.\nFor better or worse, there should now be a toot with image attached, with a useful alt text, plus some fancy tags (if the plugin converts categories to tags, that is).",
            "date_published": "2023-09-16T06:41:36+02:00",
            "date_modified": "2023-09-16T06:41:36+02:00",
            "author": {
                "name": "fwolf",
                "url": "https://2023.wp-devil.com/author/fwolf/",
                "avatar": "https://secure.gravatar.com/avatar/c2a31599f60eec1232806bfc26066ed2?s=512&d=mm&r=g"
            },
            "image": "https://2023.wp-devil.com/wp-content/uploads/2023/09/h9t723ypjyi.jpg",
            "tags": [
                "activitypub",
                "experiment",
                "fediverse",
                "mastodon",
                "test",
                "ClassicPress",
                "development"
            ]
        },
        {
            "id": "https://2023.wp-devil.com/classicpress-v2-becoming-reality/",
            "url": "https://2023.wp-devil.com/classicpress-v2-becoming-reality/",
            "title": "ClassicPress v2 becoming reality",
            "content_html": "<p>The refork of WordPress, that was decided in late 2022, which is going to be ClassicPress v2.0, is happening right now. Its based on WP 6.2 and does not contain Gutenborg (ie. the Block Editor), but compatiblity layers for allowing &#8220;regular&#8221; block-focused plugins to continue working. So CP 1.6 is supposed to be <a href=\"https://www.classicpress.net/classicpress-v1-6-0-is-out/\">the last version based on WP 4.9</a>.</p>\n<p>I&#8217;m going to test <a href=\"https://www.classicpress.net/help-test-classicpress-v2/\">the current alpha / nightly release of CP v2.0</a> soonish under a separate subdomain. It should allow for using newer WooCommerce versions, which in turn would enable me to do a &#8220;proper&#8221; fork of WooCommerce with most things up-to-date and working, instead of having to rely on WC 3.9.x and a lot of backporting / rearranging. </p>\n<p>&#8220;Soonish&#8221;, because these days, I&#8217;m quite busy with work and cannot exactly say when I&#8217;m going to have some spare time left to do a proper installation. Proper installation includes the complete data of THIS blog, with a potentially updated / enhanced theme (I&#8217;d love to switch this one over to the amalgam of Bootstrap 4 and 5 I&#8217;ve been using for client projects lately), and all the plugins that mostly stopped working.<br>\nI&#8217;d also like to test if WP Super Cache works again with CP 2, or if I still need to do a soft-fork. From what I could see from comparision of commits is: The incompatiblity is non-existent, its a decision made by the developers, changing the &#8220;Compatiblity&#8221; setting in the plugin identification block to &#8220;at least 5.x&#8221;, but the plugin by itself works perfectly well even in WP 4.9.x and CP v1.x, as soon as one changes the resp. line to &#8220;4.9&#8221;.</p>\n",
            "content_text": "The refork of WordPress, that was decided in late 2022, which is going to be ClassicPress v2.0, is happening right now. Its based on WP 6.2 and does not contain Gutenborg (ie. the Block Editor), but compatiblity layers for allowing &#8220;regular&#8221; block-focused plugins to continue working. So CP 1.6 is supposed to be the last version based on WP 4.9.\nI&#8217;m going to test the current alpha / nightly release of CP v2.0 soonish under a separate subdomain. It should allow for using newer WooCommerce versions, which in turn would enable me to do a &#8220;proper&#8221; fork of WooCommerce with most things up-to-date and working, instead of having to rely on WC 3.9.x and a lot of backporting / rearranging. \n&#8220;Soonish&#8221;, because these days, I&#8217;m quite busy with work and cannot exactly say when I&#8217;m going to have some spare time left to do a proper installation. Proper installation includes the complete data of THIS blog, with a potentially updated / enhanced theme (I&#8217;d love to switch this one over to the amalgam of Bootstrap 4 and 5 I&#8217;ve been using for client projects lately), and all the plugins that mostly stopped working.\nI&#8217;d also like to test if WP Super Cache works again with CP 2, or if I still need to do a soft-fork. From what I could see from comparision of commits is: The incompatiblity is non-existent, its a decision made by the developers, changing the &#8220;Compatiblity&#8221; setting in the plugin identification block to &#8220;at least 5.x&#8221;, but the plugin by itself works perfectly well even in WP 4.9.x and CP v1.x, as soon as one changes the resp. line to &#8220;4.9&#8221;.",
            "date_published": "2023-07-18T01:10:14+02:00",
            "date_modified": "2023-07-18T01:11:38+02:00",
            "author": {
                "name": "fwolf",
                "url": "https://2023.wp-devil.com/author/fwolf/",
                "avatar": "https://secure.gravatar.com/avatar/c2a31599f60eec1232806bfc26066ed2?s=512&d=mm&r=g"
            },
            "image": "https://2023.wp-devil.com/wp-content/uploads/2021/10/3wzkmfh8zse.jpg",
            "tags": [
                "ClassicPress",
                "development",
                "wordpress",
                "Work vs. Life"
            ]
        },
        {
            "id": "https://2023.wp-devil.com/i18n-changes-to-the-site/",
            "url": "https://2023.wp-devil.com/i18n-changes-to-the-site/",
            "title": "i18n changes to the site",
            "content_html": "<p>So I finally decided to disable Bogo, which has been a shoddy solution from the very start. But now its a shoddy solution only supporting the other shoddy, WP-6-only solution, ie. Gutenborg. Tried a few workarounds, but in the end, its wasted time and efforts to get this shoddy piece really working.</p>\n<p>Hence I&#8217;m probablly going the dirty&#8217;n&#8217;hard way, as in: its not quick, but its gonna work somehow: Use meta fields to assign language, add fancy stuff to the theme to indicate the language of the current post or page, connect posts and pages using meta fields, and so on. Maybe also add a simple translation / i18n shortcode for quick inline sections, and a simplified language switcher to the sidebar / navigation.</p>\n<p>Maybe release a simple tutorial + micro plugin, too. All to be seen in the nearby future.</p>\n",
            "content_text": "So I finally decided to disable Bogo, which has been a shoddy solution from the very start. But now its a shoddy solution only supporting the other shoddy, WP-6-only solution, ie. Gutenborg. Tried a few workarounds, but in the end, its wasted time and efforts to get this shoddy piece really working.\nHence I&#8217;m probablly going the dirty&#8217;n&#8217;hard way, as in: its not quick, but its gonna work somehow: Use meta fields to assign language, add fancy stuff to the theme to indicate the language of the current post or page, connect posts and pages using meta fields, and so on. Maybe also add a simple translation / i18n shortcode for quick inline sections, and a simplified language switcher to the sidebar / navigation.\nMaybe release a simple tutorial + micro plugin, too. All to be seen in the nearby future.",
            "date_published": "2023-05-12T04:29:05+02:00",
            "date_modified": "2023-05-12T04:29:05+02:00",
            "author": {
                "name": "fwolf",
                "url": "https://2023.wp-devil.com/author/fwolf/",
                "avatar": "https://secure.gravatar.com/avatar/c2a31599f60eec1232806bfc26066ed2?s=512&d=mm&r=g"
            },
            "image": "https://wp-devil.com/wp-content/uploads/2021/06/ukzhlkoz1ie.jpg",
            "tags": [
                "ClassicPress",
                "development",
                "Life and let die",
                "wordpress"
            ]
        },
        {
            "id": "https://2023.wp-devil.com/micro-plugin-mastodon-profile-verification-link/",
            "url": "https://2023.wp-devil.com/micro-plugin-mastodon-profile-verification-link/",
            "title": "Micro-Plugin: Mastodon Profile Verification Link",
            "content_html": "<p>Just finished building a quick micro plugin for ClassicPress and WordPress, which allows you to add a verification link pointing back to your mastodon profile.<br>\nBut not to just one, but to ALL your potential profiles (eg. I got two: one for my main stuff, and the other is for DJing + artsy fartsy).</p>\n<p>Lazy being that I am, the settings are being displayed under Settings > Discussion => &#8220;Mastodon Profile URL(s)&#8221;. One profile URL per line.</p>\n<p>Tested with ClassicPress 1.4. Released under the GNU GPL v2.<br>\nGet it yourself from the gist / source code. drop it in your plugin directory (preferable in its own sub-directory), activate, et voila!</p>\n<p>View the code on <a href=\"https://gist.github.com/ginsterbusch/ce9497e4e1c416dc7e0b49e767a994b1\">Gist</a>.</p>\n",
            "content_text": "Just finished building a quick micro plugin for ClassicPress and WordPress, which allows you to add a verification link pointing back to your mastodon profile.\nBut not to just one, but to ALL your potential profiles (eg. I got two: one for my main stuff, and the other is for DJing + artsy fartsy).\nLazy being that I am, the settings are being displayed under Settings > Discussion => &#8220;Mastodon Profile URL(s)&#8221;. One profile URL per line.\nTested with ClassicPress 1.4. Released under the GNU GPL v2.\nGet it yourself from the gist / source code. drop it in your plugin directory (preferable in its own sub-directory), activate, et voila!\nView the code on Gist.",
            "date_published": "2022-11-07T07:10:33+01:00",
            "date_modified": "2022-11-07T07:29:03+01:00",
            "author": {
                "name": "fwolf",
                "url": "https://2023.wp-devil.com/author/fwolf/",
                "avatar": "https://secure.gravatar.com/avatar/c2a31599f60eec1232806bfc26066ed2?s=512&d=mm&r=g"
            },
            "image": "https://wp-devil.com/wp-content/uploads/2021/06/jdgtvgzqmgq.jpg",
            "tags": [
                "ClassicPress",
                "development",
                "mastodon",
                "wordpress"
            ]
        },
        {
            "id": "https://2023.wp-devil.com/how-to-change-the-admin-page-title-to-something-useful/",
            "url": "https://2023.wp-devil.com/how-to-change-the-admin-page-title-to-something-useful/",
            "title": "How to change the admin page title to something useful",
            "content_html": "<p>Fix the HTML title of the post editor in the WordPress admin to something much more useful.<br>\nVery helpful when editing multiple posts, but also, when changing lots of images (eg. post thumbnail or product gallery etc.).</p>\n<p>View the code on <a href=\"https://gist.github.com/ginsterbusch/3c18f6863c070a2e35148ef8f1e66911\">Gist</a>.</p>\n",
            "content_text": "Fix the HTML title of the post editor in the WordPress admin to something much more useful.\nVery helpful when editing multiple posts, but also, when changing lots of images (eg. post thumbnail or product gallery etc.).\nView the code on Gist.",
            "date_published": "2022-08-15T15:40:06+02:00",
            "date_modified": "2022-09-27T11:53:31+02:00",
            "author": {
                "name": "fwolf",
                "url": "https://2023.wp-devil.com/author/fwolf/",
                "avatar": "https://secure.gravatar.com/avatar/c2a31599f60eec1232806bfc26066ed2?s=512&d=mm&r=g"
            },
            "image": "https://wp-devil.com/wp-content/uploads/2022/06/c2zhshtnl5i.jpg",
            "tags": [
                "development",
                "wordpress"
            ]
        },
        {
            "id": "https://2023.wp-devil.com/html-title-tag-im-wordpress-admin-aendern/",
            "url": "https://2023.wp-devil.com/html-title-tag-im-wordpress-admin-aendern/",
            "title": "Snippet: HTML title tag im WordPress-Adminbereich sinnvoll ab\u00e4ndern",
            "content_html": "<p>Kleines Snippet als Gist, um den HTML-title-Tag im WordPress-Adminbereich, d.h. im Post Editor, auf was Sinnvolleres abzu\u00e4ndern.<br>\nSEHR hilfreich, wenn man mehrere Posts nacheinander \u00e4ndern muss, aber auch, wenn viele Bildzuordnungen zu bearbeiten sind (Post Thumbnail, Produkt-Galerien usw.).</p>\n<p>View the code on <a href=\"https://gist.github.com/ginsterbusch/3c18f6863c070a2e35148ef8f1e66911\">Gist</a>.</p>\n",
            "content_text": "Kleines Snippet als Gist, um den HTML-title-Tag im WordPress-Adminbereich, d.h. im Post Editor, auf was Sinnvolleres abzu\u00e4ndern.\nSEHR hilfreich, wenn man mehrere Posts nacheinander \u00e4ndern muss, aber auch, wenn viele Bildzuordnungen zu bearbeiten sind (Post Thumbnail, Produkt-Galerien usw.).\nView the code on Gist.",
            "date_published": "2022-08-15T15:39:18+02:00",
            "date_modified": "2022-08-15T15:43:41+02:00",
            "author": {
                "name": "fwolf",
                "url": "https://2023.wp-devil.com/author/fwolf/",
                "avatar": "https://secure.gravatar.com/avatar/c2a31599f60eec1232806bfc26066ed2?s=512&d=mm&r=g"
            },
            "image": "https://wp-devil.com/wp-content/uploads/2022/06/c2zhshtnl5i.jpg",
            "tags": [
                "development",
                "wordpress"
            ]
        },
        {
            "id": "https://2023.wp-devil.com/reorientierung-2022/",
            "url": "https://2023.wp-devil.com/reorientierung-2022/",
            "title": "Reorientierung 2022",
            "content_html": "<p>Nach einigen, eher spontanen Bewerbungen und daran anschlie\u00dfend \u00fcberw\u00e4ltigendem Feedback, orientiere ich mich jetzt, Mitte 2022, etwas um.</p>\n<p>D.h. die Gespr\u00e4che haben mir u.a. gezeigt, dass ich, wenn ich denn meine Selbst\u00e4ndigkeit erhalten m\u00f6chte, diese besser, griffiger, detailierter aufstellen und definieren muss.</p>\n<p>Da ist zum einen meine fachliche Ausrichtung: Weiterhin Web Developer / <a href=\"https://bradfrost.com/blog/post/frontend-design/\">Frontend-Designer</a>, was ich auch ab und zu mal als Gegenst\u00fcck zum DevOp bezeichne, so etwas wie &raquo;DevDes&laquo;. Die Gewichtung hat sich, auftragsbedingt, in den letzten Jahren st\u00e4rker Richtung Entwicklung verschoben, so dass das Verh\u00e4ltnis bei ca. 60% Webentwicklung und 40% Webdesign &amp; Usability liegt.</p>\n<p>Zum anderen ist da noch das, was ich tats\u00e4chlich an Leistungen durchf\u00fchre:</p>\n<ul>\n<li>(Klassische) Website-Erstellung, also Konzeption, Design und Umsetzung</li>\n<li>Individuelle Programmierung (Integration, API-Anbindungen) und Plugin-Entwicklung (WordPress, ClassicPress, andere)</li>\n<li>Web Performance (Ladezeiten, Responsive) sowie Usability / Accessibility-Optimierung</li>\n<li>Shopsysteme (WooCommerce, OpenCart, ..) und E-Commerce-L\u00f6sungen</li>\n<li>Technische Beratung / Consulting</li>\n<li>Projektrettung, -\u00dcbernahme (etwa wenn der ursp. Auftragnehmer weggefallen ist) und: Notfallprojekte (z.B. gehackte Websites wieder flott bekommen, extrem schlecht gewartete WordPress-Installation auf Stand bringen u.\u00e4.)</li>\n<li>Administration und Wartung (Updates, auch mit Staging, um Ausf\u00e4lle zu vermeiden)</li>\n</ul>\n<p>Wie ich das jetzt griffig im Portfolio pr\u00e4sentieren kann, ohne wie ein Bauchladen zu wirken, ist der n\u00e4chste Schritt. Es ist ja nicht so, als w\u00fcrde ich alles in gleichem Umfang durchf\u00fchren &#8211; so sind Notfallaufr\u00e4ge mit gehackten Websites eher nicht der Standard. Das macht im Jahr vielleicht 5%, maximal 10% des gesamten Arbeitsvolumens aus.</p>\n",
            "content_text": "Nach einigen, eher spontanen Bewerbungen und daran anschlie\u00dfend \u00fcberw\u00e4ltigendem Feedback, orientiere ich mich jetzt, Mitte 2022, etwas um.\nD.h. die Gespr\u00e4che haben mir u.a. gezeigt, dass ich, wenn ich denn meine Selbst\u00e4ndigkeit erhalten m\u00f6chte, diese besser, griffiger, detailierter aufstellen und definieren muss.\nDa ist zum einen meine fachliche Ausrichtung: Weiterhin Web Developer / Frontend-Designer, was ich auch ab und zu mal als Gegenst\u00fcck zum DevOp bezeichne, so etwas wie &raquo;DevDes&laquo;. Die Gewichtung hat sich, auftragsbedingt, in den letzten Jahren st\u00e4rker Richtung Entwicklung verschoben, so dass das Verh\u00e4ltnis bei ca. 60% Webentwicklung und 40% Webdesign &amp; Usability liegt.\nZum anderen ist da noch das, was ich tats\u00e4chlich an Leistungen durchf\u00fchre:\n\n(Klassische) Website-Erstellung, also Konzeption, Design und Umsetzung\nIndividuelle Programmierung (Integration, API-Anbindungen) und Plugin-Entwicklung (WordPress, ClassicPress, andere)\nWeb Performance (Ladezeiten, Responsive) sowie Usability / Accessibility-Optimierung\nShopsysteme (WooCommerce, OpenCart, ..) und E-Commerce-L\u00f6sungen\nTechnische Beratung / Consulting\nProjektrettung, -\u00dcbernahme (etwa wenn der ursp. Auftragnehmer weggefallen ist) und: Notfallprojekte (z.B. gehackte Websites wieder flott bekommen, extrem schlecht gewartete WordPress-Installation auf Stand bringen u.\u00e4.)\nAdministration und Wartung (Updates, auch mit Staging, um Ausf\u00e4lle zu vermeiden)\n\nWie ich das jetzt griffig im Portfolio pr\u00e4sentieren kann, ohne wie ein Bauchladen zu wirken, ist der n\u00e4chste Schritt. Es ist ja nicht so, als w\u00fcrde ich alles in gleichem Umfang durchf\u00fchren &#8211; so sind Notfallaufr\u00e4ge mit gehackten Websites eher nicht der Standard. Das macht im Jahr vielleicht 5%, maximal 10% des gesamten Arbeitsvolumens aus.",
            "date_published": "2022-06-22T12:42:48+02:00",
            "date_modified": "2022-06-22T14:55:41+02:00",
            "author": {
                "name": "fwolf",
                "url": "https://2023.wp-devil.com/author/fwolf/",
                "avatar": "https://secure.gravatar.com/avatar/c2a31599f60eec1232806bfc26066ed2?s=512&d=mm&r=g"
            },
            "image": "https://wp-devil.com/wp-content/uploads/2022/06/biwm-utpvvc.jpg",
            "tags": [
                "development",
                "Life and let die",
                "Webdesign",
                "wordpress",
                "Work vs. Life"
            ]
        },
        {
            "id": "https://2023.wp-devil.com/web-performance-optimization-in-a-nutshell/",
            "url": "https://2023.wp-devil.com/web-performance-optimization-in-a-nutshell/",
            "title": "Web Performance Optimization in a nutshell",
            "content_html": "<p>After doing this for over 20+ years, and having seen a lot of fancy stuff come and go, my game in optimizing load times and rendering speed hasnt change that much.</p>\n<p>If I was asked for the main contenders for improving loading times, in 2022, it still boils down primarly to the following ones:</p>\n<ol>\n<li>Images &#8211; too big in both dimension and file size, but also using the wrong file format (eg. PNG instead of JPEG for photos)</li>\n<li>Render-blocking scripts / CSS / embeds</li>\n<li>(No) Caching policy &#8211; whether that just means caching rules or actual pre-caching, eg. static HTML</li>\n<li>Requests &#8211; numbers of overall resource requests of the page</li>\n</ol>\n<p>Other common factors nowadays:</p>\n<ul>\n<li>CDN &#8211; not using one, or not properly using it (also related with bad or missing caching policy)</li>\n<li>Massive HTML DOM structures &#8211; take much longer to parse and render; known also under the moniker &#8220;divitis&#8221; or just &#8220;HTML tag orgy&#8221;</li>\n<li>Media Queries &#8211; improper use of such, eg. missing, badly set breakpoints or missing optimization of the whole site towards these breakpoints</li>\n<li>Lazy-loading / picture / srcset &#8211; not using those techniques, but also not knowinng how to properly apply them; eg. lazy-loading can be used for ALL sources, not just images</li>\n<li>Icon fonts / Data URL &#8211; if you use an icon or small image everywhere across your site, why not instead rely on either icon fonts, which already supply these, and are loaded only once, or data URLs, which help in similar ways, if the image in question is on the smaller side (file size)?</li>\n</ul>\n<p>This is just a quick notice &#8211; for now. I&#8217;m going to add detailed articles to several topics when I get some time to spare, and link to them from here, as soon as they are up <img src=\"https://twemoji.classicpress.net/14/72x72/1f642.png\" alt=\"\ud83d\ude42\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\"></p>\n",
            "content_text": "After doing this for over 20+ years, and having seen a lot of fancy stuff come and go, my game in optimizing load times and rendering speed hasnt change that much.\nIf I was asked for the main contenders for improving loading times, in 2022, it still boils down primarly to the following ones:\n\nImages &#8211; too big in both dimension and file size, but also using the wrong file format (eg. PNG instead of JPEG for photos)\nRender-blocking scripts / CSS / embeds\n(No) Caching policy &#8211; whether that just means caching rules or actual pre-caching, eg. static HTML\nRequests &#8211; numbers of overall resource requests of the page\n\nOther common factors nowadays:\n\nCDN &#8211; not using one, or not properly using it (also related with bad or missing caching policy)\nMassive HTML DOM structures &#8211; take much longer to parse and render; known also under the moniker &#8220;divitis&#8221; or just &#8220;HTML tag orgy&#8221;\nMedia Queries &#8211; improper use of such, eg. missing, badly set breakpoints or missing optimization of the whole site towards these breakpoints\nLazy-loading / picture / srcset &#8211; not using those techniques, but also not knowinng how to properly apply them; eg. lazy-loading can be used for ALL sources, not just images\nIcon fonts / Data URL &#8211; if you use an icon or small image everywhere across your site, why not instead rely on either icon fonts, which already supply these, and are loaded only once, or data URLs, which help in similar ways, if the image in question is on the smaller side (file size)?\n\nThis is just a quick notice &#8211; for now. I&#8217;m going to add detailed articles to several topics when I get some time to spare, and link to them from here, as soon as they are up",
            "date_published": "2022-06-09T21:58:00+02:00",
            "date_modified": "2022-06-09T21:58:00+02:00",
            "author": {
                "name": "fwolf",
                "url": "https://2023.wp-devil.com/author/fwolf/",
                "avatar": "https://secure.gravatar.com/avatar/c2a31599f60eec1232806bfc26066ed2?s=512&d=mm&r=g"
            },
            "image": "https://wp-devil.com/wp-content/uploads/2022/06/gt3rjumq2zm.jpg",
            "tags": [
                "loading speed",
                "loading times",
                "web performance",
                "development",
                "Webdesign",
                "Work"
            ]
        },
        {
            "id": "https://2023.wp-devil.com/woocommerce-setting-a-specific-stock-number-for-all-products-but-a-selected-few/",
            "url": "https://2023.wp-devil.com/woocommerce-setting-a-specific-stock-number-for-all-products-but-a-selected-few/",
            "title": "WooCommerce: Setting a specific stock number for all products but a selected few?",
            "content_html": "<p>Client wanted to have inventory management, but the items are all produced on-demand &#8211; except for unique specimens, which are either custom-made pieces which have been returned, or have been produced as a side or test run.</p>\n<p>So, we decided to enable inventory management, and set the stock number for all items in any category BUT the &#8220;Einzelst\u00fccke&#8221; (singular pieces) to 999, and items in that specific category to 1.</p>\n<p>There certainly are plugins and a few screencasts / tutorials how to do achieve this, but the crafty developer who&#8217;s at least a bit versed with SQL might just prefer the following approach:</p>\n<ol>\n<li>Before-hand: <code>_stock</code> is the meta field used for inventory management by WooCommerce.</li>\n<li>SQL command:\n<pre>UPDATE {prefix}postmeta SET meta_value = '999' WHERE meta_key = 'stock'</pre>\n<p> solves the issue with pre-existing products</li>\n<li>The following SQL subquery should solve any issues with (public) products which have not yet set a fixed stock value:\n<pre>UPDATE {prefix}postmeta SET meta_value = '999' WHERE meta_key = 'stock' AND post_id IN (SELECT ID FROM {prefix}posts WHERE product_type = 'product' AND post_status = 'publish')</pre>\n</li>\n<li>Head over into the WP admin area, to the product overview, filter by the specific category, and then select all the products that should have a specific different amount</li>\n<li>Select &#8220;Edit&#8221; from the action menu and click the &#8220;Apply&#8221; button</li>\n<li>This should display an edit form to mass-edit all selected products</li>\n<li>Now select &#8220;Stock qty&#8221;, select &#8220;Change to:&#8221; and then enter the desired different number (in our case: 1)</li>\n<li>Apply the changes with clicking on the &#8220;Update&#8221; button</li>\n<li>et voila! Done <img src=\"https://twemoji.classicpress.net/14/72x72/1f609.png\" alt=\"\ud83d\ude09\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\"></li>\n</ol>\n",
            "content_text": "Client wanted to have inventory management, but the items are all produced on-demand &#8211; except for unique specimens, which are either custom-made pieces which have been returned, or have been produced as a side or test run.\nSo, we decided to enable inventory management, and set the stock number for all items in any category BUT the &#8220;Einzelst\u00fccke&#8221; (singular pieces) to 999, and items in that specific category to 1.\nThere certainly are plugins and a few screencasts / tutorials how to do achieve this, but the crafty developer who&#8217;s at least a bit versed with SQL might just prefer the following approach:\n\nBefore-hand: _stock is the meta field used for inventory management by WooCommerce.\nSQL command:\nUPDATE {prefix}postmeta SET meta_value = '999' WHERE meta_key = 'stock'\n solves the issue with pre-existing products\nThe following SQL subquery should solve any issues with (public) products which have not yet set a fixed stock value:\nUPDATE {prefix}postmeta SET meta_value = '999' WHERE meta_key = 'stock' AND post_id IN (SELECT ID FROM {prefix}posts WHERE product_type = 'product' AND post_status = 'publish')\n\nHead over into the WP admin area, to the product overview, filter by the specific category, and then select all the products that should have a specific different amount\nSelect &#8220;Edit&#8221; from the action menu and click the &#8220;Apply&#8221; button\nThis should display an edit form to mass-edit all selected products\nNow select &#8220;Stock qty&#8221;, select &#8220;Change to:&#8221; and then enter the desired different number (in our case: 1)\nApply the changes with clicking on the &#8220;Update&#8221; button\net voila! Done",
            "date_published": "2022-05-19T19:09:26+02:00",
            "date_modified": "2022-05-19T19:11:53+02:00",
            "author": {
                "name": "fwolf",
                "url": "https://2023.wp-devil.com/author/fwolf/",
                "avatar": "https://secure.gravatar.com/avatar/c2a31599f60eec1232806bfc26066ed2?s=512&d=mm&r=g"
            },
            "image": "https://wp-devil.com/wp-content/uploads/2022/05/vh-opmrhfii.jpg",
            "tags": [
                "development",
                "WooCommerce",
                "wordpress"
            ]
        },
        {
            "id": "https://2023.wp-devil.com/code-of-dark-joy-2/",
            "url": "https://2023.wp-devil.com/code-of-dark-joy-2/",
            "title": "Code of Dark Joy #2",
            "content_html": "<p>Auf zur n\u00e4chsten Ausgabe von Code of Dark Joy <img src=\"https://twemoji.classicpress.net/14/72x72/1f642.png\" alt=\"\ud83d\ude42\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\"><br>\nLive programming / herumfriemeln mit Web- und Streaming-Kram, dunklem Tee und ein bisserl Musick <img src=\"https://twemoji.classicpress.net/14/72x72/1f642.png\" alt=\"\ud83d\ude42\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\"></p>\n<p>Die Pl\u00e4ne f\u00fcr die heutige Sendung wie folgt:</p>\n<ul>\n<li>1 &#8211; 2 kleine DJ-Sets &#8211; das erste zu Beginn, das zweite am Ende <img src=\"https://twemoji.classicpress.net/14/72x72/1f642.png\" alt=\"\ud83d\ude42\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\"></li>\n<li>Onboarding mit etwas Blah \u00fcber die Sendung</li>\n<li>Aktuelle Pl\u00e4ne und geplante \u00c4nderungen in der nahen Zukunft, f\u00fcr alle meiner Sendungen / Streams</li>\n<li>Einmal ausf\u00fchrlich abl\u00e4stern / auskotzen bzgl. der Kaputtmachnung von OBS-GUI-Funktionen im aktuellsten &#8220;stable&#8221;-Release (27.0) f\u00fcr Linux, und Empfehlungen , wie man bei einem Downgrade vorgehen sollte</li>\n<li>Vorstellung von ein paar ausgew\u00e4hlten Streams / Kan\u00e4len / Podcasts (prim\u00e4r auf Twitch); das sollte k\u00fcnftig ein fester Bestandteil meiner Shows werden (inkl. Slideshows mit Uhrzeiten / Flyern u.\u00e4)</li>\n<li>Fragen &#038; Antworten (alle Fragen sind erlaubt, aber bevorzugt nat\u00fcrlich in Bezug auf OBS, HTML / CSS / Web, WordPress usw. :))</li>\n<li>Programmierteil: Betrachtung der verschiedenen Methoden, um ein &#8220;current song&#8221;-Feature umzusetzen, und Beginn der Arbeit an den notwendigen Elementen f\u00fcr die &#8220;listening session&#8221;-Szene</li>\n</ul>\n<p>Zeitrahmen: 18:30 &#8211; 21:30 CET / 12:30 &#8211; 3:30 pm EST / 16:30 &#8211; 19:30 UTC+0<br>\nWo: <a href=\"https://twitch.tv/gothicforesttroll\">https://twitch.tv/gothicforesttroll</a> <img src=\"https://twemoji.classicpress.net/14/72x72/1f642.png\" alt=\"\ud83d\ude42\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\"></p>\n",
            "content_text": "Auf zur n\u00e4chsten Ausgabe von Code of Dark Joy \nLive programming / herumfriemeln mit Web- und Streaming-Kram, dunklem Tee und ein bisserl Musick \nDie Pl\u00e4ne f\u00fcr die heutige Sendung wie folgt:\n\n1 &#8211; 2 kleine DJ-Sets &#8211; das erste zu Beginn, das zweite am Ende \nOnboarding mit etwas Blah \u00fcber die Sendung\nAktuelle Pl\u00e4ne und geplante \u00c4nderungen in der nahen Zukunft, f\u00fcr alle meiner Sendungen / Streams\nEinmal ausf\u00fchrlich abl\u00e4stern / auskotzen bzgl. der Kaputtmachnung von OBS-GUI-Funktionen im aktuellsten &#8220;stable&#8221;-Release (27.0) f\u00fcr Linux, und Empfehlungen , wie man bei einem Downgrade vorgehen sollte\nVorstellung von ein paar ausgew\u00e4hlten Streams / Kan\u00e4len / Podcasts (prim\u00e4r auf Twitch); das sollte k\u00fcnftig ein fester Bestandteil meiner Shows werden (inkl. Slideshows mit Uhrzeiten / Flyern u.\u00e4)\nFragen &#038; Antworten (alle Fragen sind erlaubt, aber bevorzugt nat\u00fcrlich in Bezug auf OBS, HTML / CSS / Web, WordPress usw. :))\nProgrammierteil: Betrachtung der verschiedenen Methoden, um ein &#8220;current song&#8221;-Feature umzusetzen, und Beginn der Arbeit an den notwendigen Elementen f\u00fcr die &#8220;listening session&#8221;-Szene\n\nZeitrahmen: 18:30 &#8211; 21:30 CET / 12:30 &#8211; 3:30 pm EST / 16:30 &#8211; 19:30 UTC+0\nWo: https://twitch.tv/gothicforesttroll",
            "date_published": "2021-06-04T06:44:46+02:00",
            "date_modified": "2021-06-04T06:44:46+02:00",
            "author": {
                "name": "fwolf",
                "url": "https://2023.wp-devil.com/author/fwolf/",
                "avatar": "https://secure.gravatar.com/avatar/c2a31599f60eec1232806bfc26066ed2?s=512&d=mm&r=g"
            },
            "image": "https://wp-devil.com/wp-content/uploads/2021/06/title-image-dark-tea04_desktop01-fs8.png",
            "tags": [
                "linux",
                "live coding",
                "obs",
                "ubuntu",
                "development",
                "DJ",
                "Live broadcasting",
                "wordpress"
            ]
        }
    ]
}