<p>It was really stressful because if I didn’t pass, I’d be out. And I remember really struggling with the class. I eventually passed. Barely.</p>
<p>For me, it just felt like a never ending cycle of struggling.</p>
<p>Japanese studies and the level of pacing required to keep up with the curriculum was too fast for me. I ended up switching majors to East Asian Cultures. The more time spent retaking courses, the more student loan debt I was piling on.</p>
<p>It took me five years to graduate, but I made it somehow. I was a first-generation college graduate, and while that was great, I had a little over 40K in student loan debt waiting to be paid off.</p>
<blockquote><p>Living in Orange County with a degree in East Asian Cultures, I could say there weren’t exactly many jobs out there for me.</p></blockquote>
<p>With my looming student loan payments creeping up from deferment, I really needed a job. That’s when I discovered it was possible to work in Japan teaching English.</p>
<p>It was harsh times. I was living in the living room of a house with seven other people, and my part-time gig as a barista wasn’t cutting it, so moving to Japan to teach English didn’t seem like such a bad idea after all.</p>
<p>I applied, interviewed, and got accepted to one of the big dispatch companies in Japan, and I was off!</p>
<p>Little did I know I was just simply disembarking off one struggle bus, and hopping onto the next one.</p>
<h2>Japan Life</h2>
<a href="https://heropress.com/wp-content/uploads/2022/02/image13.png"><img /></a>For the first few years of my time in Japan, I used Tumblr to photo blog about my life in Sapporo.
<p>So here I was in Japan as a freshly minted ALT and I had no clue what was going on.</p>
<p>It was the first time to live in a new country, work in a new country, and have a full-time job.</p>
<p>All the Japanese I studied in university didn’t do much for me since speaking was what was essential here. I was basically starting from zero in this new foreign land.</p>
<p>I brought along all the saved money I had when coming here, but apparently it was not enough to cover the basic living expenses I needed for two months. I borrowed a loan from the company I worked for to help me out a bit.</p>
<p>I didn’t want to do it, but I didn’t really have much of a choice either. Payments for the loan were taken out of my salary automatically. I probably didn’t see my first full salary until the latter part of my first year on the job.</p>
<blockquote><p>To say living was hard would be an understatement.</p></blockquote>
<p>Even after getting my first full salary, I already came to realize that I really needed to save whatever amount I could to stay afloat. In addition to my normal ALT job, I worked two other English-teaching side jobs as well.</p>
<p>This wasn’t “living the life”. This was surviving. My time was spent being too busy trying not to be poor.</p>
<p>I was tired, exhausted, and to a certain extent a little depressed.</p>
<p>Hokkaido winters last for a good half year here, and I greatly underestimated my ability to hold out for the first season.</p>
<p>I couldn’t afford proper winter clothes, which are essential for surviving Hokkaido winters. So I always just layered up on all the t-shirts I had when I was living in my 1LDK apartment.</p>
<p>I didn’t turn on the heater to avoid expensive gas costs (which I knew I couldn’t afford to pay anyway). I’m not sure how I survived, but I was freezing every morning and evening. I was only ever warm when I was at my schools, or any indoor environment that wasn’t my apartment to be honest.</p>
<p>Whenever I was invited out to eat with colleagues, the thought of whether I could afford to do that was always at the back of my mind. To maintain my social sanity, I opted to bite the bullet many times and paid up. But it would always be back to paltry living for up to several weeks after.</p>
<p>This naturally translated to not having very many friends. The very few people that I could actually call my friends ended up finding better jobs back in their home country, so they left Japan. It was lonely.</p>
<p>There were many times when I walked, what added up to be many kilometers, to and from my assigned schools just so I could save a few hundred yen on transportation costs. This would pay for a small “meal” I’d pick up from the convenience store and that would be my dinner.</p>
<p>During my university days I was a casual social smoker. But after living in Japan for a bit, this horrible habit amplified into consuming a pack a week. I don’t smoke anymore though.</p>
<p>I’m not going to lie, smoking helped me cope with my days. But I also did it for the practical purpose of curbing my appetite so I could save on meals. There were also times when I would stave off my hunger with only peanut butter and protein shakes.</p>
<blockquote><p>Yet somewhere amidst all this chaos, I met a partner, got married, and we had our first child.</p></blockquote>
<p>Time had flown by so fast without me even realizing it and financially I was still in more or less the same situation I was when I first got here.</p>
<p>I was not happy with this. My partner was also anxious about it too. In a way, I felt somewhat guilty for bringing my own burdens into my partner’s life. It’s not how I envisioned myself entering a relationship. I always wanted to be in a financially stable position before starting a family. But what we plan is not always what life has in store for us, right? My partner and I had a few heavy discussions that made me reevaluate my plans.</p>
<p>Was I really on the path to reliving my childhood and becoming like my father? The difference between me and him was that I wasn’t doing useless and unproductive activities during my free time. Or, was I? Or, maybe I was just focusing my time on the wrong things.</p>
<p>To stay grounded, I constantly reminded myself of my why, and with the birth of my first child, there was a switch that flipped.</p>
<p>Life was no longer just about me.</p>
<p>This in turn started a domino effect of me taking big moves to make a change. A big change.</p>
<h2>Learning How To Code</h2>
<p>After going through a whole lot of soul-searching and career tests, it was clear that I wanted to break into tech in some form or another. It was a field that was much more suited toward my personal interests and natural talents.</p>
<p>I knew that if I wanted to have any sort of chance of breaking in, I’d have to do a lot of studying, networking and resume-building. Since I was coming from a non-tech background with nearly zero experience, this was obviously going to take some planning and a lot of time.</p>
<p>After being directly hired by a private high school, I had a little bit more free time and autonomy during my work day to do what I want.</p>
<blockquote><p>You could bet your bottom dollar I was on my computer educating myself on everything there was on how to get a tech job.</p></blockquote>
<p>I quickly learned there were so many different avenues to get started and it was totally overwhelming. So I decided to start out with the basics and thought I’d go back to revisiting my HTML &amp; CSS skills first.</p>
<p>My first encounter with these languages goes back to when I had a Xanga account. Using its “Weblog”, I’d often mess around with the HTML formatting when writing posts and I’d always be fascinated with what kind of changes were made when using different tags.</p>
<p>I jumped right in by taking some free courses on Codecademy. I took its HTML, CSS, &amp; JavaScript courses, but I didn’t feel like I was making progress toward anything. I think most of it had to do with the fact that everything I was learning was contained on and restricted to the platform. Additionally, there was a lot of “handholding” involved while going through each coding exercise. Eventually, I moved away from the platform to try others.</p>
<p>It’s also worth mentioning that during this time, I wasn’t immediately sure as to which area in the industry I wanted to get into, or rather, which area would suit me best.</p>
<p>I ended up learning a bunch of programming languages and taking many different courses on various platforms. Platforms that really excelled my learning included Udemy, Lynda (now LinkedIn Learning), The Odin Project, and Code College.</p>
<p>The first programming language I spent some serious time studying was Python. The book I used for learning it was Learn Python The Hard Way by Zed Shaw. A lot of my fundamental programming knowledge came from this language and book. Other programming languages &amp; frameworks I learned and tried out included Django, jQuery, Swift, PHP, Ruby, Ruby on Rails.</p>
<p>Frameworks I touched upon included Bootstrap, Foundation, Materialize, PureCSS.</p>
<p>I also became comfortable using my Mac Terminal, setting up test environments, different CLI tools, and version control tools like Git &amp; GitHub. I even got into web design for a bit, explored the Adobe Suite, and learned the business side of freelancing and entrepreneurship.</p>
<p>I was literally all over the place for my first couple years of learning and trying to find my niche.</p>
<p>Eventually, it was through a freelancing course that suggested I should start a personal brand, and invest in a personal website. And that made sense. I was planning on creating an online portfolio anyway, so I decided to finally invest in web hosting and a domain. The suggested platform to build a site on was of course WordPress.</p>
<p>As I delved deeper into the section of the course that discussed different aspects of WordPress, what struck me the most was that the instructor pointed out how there were many career options in this field.</p>
<p>Since WordPress is open-source, folks are able to freely get under the hood of the software, understand the code, make contributions to improve it, modify it, and even push out their own custom solutions to make available for public use. Because of this, profitable businesses have been made around a single WordPress plugin or theme.</p>
<blockquote><p>Careers aren’t limited to being just a web developer in the WordPress world. You could be a designer, digital marketer, content creator, support technician, SEO expert, and the list goes on with many more options.</p></blockquote>
<p>Unlike most traditional jobs where experience is acquired after getting the job, with WordPress you can create your own experience. You do not need permission to start contributing. You also don’t need a university degree or Ph.D to land a career in WordPress. All you need is curiosity and a desire to learn.</p>
<p>This little nugget of a fact about WordPress that I never realized intrigued me.</p>
<p>I started to explore more about the history of WordPress, learned about its community, and its mission: democratize publishing.</p>
<p>I’m a big believer in purpose, and for me, that mission is what makes WordPress great.</p>
<p>WordPress believes in empowerment, the means to express yourself freely, and the idea of sharing &amp; building upon ideas.</p>
<p>Not to mention that, at the time, it powered over 30% of all websites. Fast forward to present day and that percentage is now 43.3%.</p>
<p>It was clear to me that the ambition of WordPress co-founder Matt Mullenweg (and CEO of Automattic Inc.) is to make the web a better place both through its open source software and the community.</p>
<p>Many of the values and beliefs of the WordPress brand aligned so well with my own that I knew almost instantly that this was the road for me.</p>
<p>When thinking about what I really wanted out of a career, I realized that there’d be nothing more fulfilling than to be a part of a crew that democratizes publishing.</p>
<p>By this time, my web development skills and learning were well honed-in and exclusively focused on WordPress and I definitively knew this was the route I wanted to take.</p>
<p>Whether it be through freelance web development, or a web development agency, the future of my career would be with WordPress.</p>
<h2>WordPress Life</h2>
<p>Throughout this whole journey, there was a book I read called “The 4-Hour Work Week” by Tim Ferriss and there was this one quote regarding the value of money that particularly struck me.</p>
<p>“Money is multiplied in practical value depending on the number of W’s you control in your life: what you do, when you do it, where you do it, and with whom you do it. I call this the ‘freedom multiplier.’”</p>
<p>When coming across this quote, I paused for a bit and it made me reevaluate my own situation and the number of W’s I controlled (which were none).</p>
<p><strong>The What (aka the work)</strong> — I wasn’t in control of what I wanted to do. Teaching English was not what I wanted to do. It was a means to pay bills. I should mention that it wasn’t so much that I disliked teaching, but rather it was the poor (or should I say toxic) working conditions that eventually steered me clear from continuing on.</p>
<p><strong>The When (aka the time)</strong> — I wasn’t in control of when I wanted to do it. Being at a school on a set schedule from 8am to 5pm M-F, and every other Saturday, was not something I enjoyed.</p>
<p><strong>The Where (aka the place)</strong> — I wasn’t in control of where I worked. Like with any job associated with a brick &amp; mortar establishment, you need to go to the place to work. That means the radius for where you can live in relation to the place of work is limited. I didn’t enjoy living in the area I was in at the time, nor the small apartment my family of three was cramped in.</p>
<p><strong>The Who (aka the people)</strong> — I wasn’t in control of whom I worked with. In an office environment, you don’t get to choose where your desk is and with whom you’re situated around. In my case, I hardly talked to anyone because 1) I didn’t want to be there in the first place, and 2) no one really cared to talk to me. I had literally zero colleagues that I could call an actual colleague, a “colleague” being a person you get along with at work at the most basic level.</p>
<p>In any case, this helped me put my own situation into clearer perspective, and served as the main motivator for me to keep on trekking.</p>
<blockquote><p>I knew there would be only one of two web development career paths I’d take: freelancing or working with a company.</p></blockquote>
<p>Both were viable paths since my only goal was to be in a position that allowed me to grow my skills further.</p>
<p>In a way, I was already sort of freelancing and had a project already in progress with a hair salon. I managed to convince my stylist to let me build their website just so I could get some work under my belt.</p>
<p>In the meantime, I also researched which companies I’d be interested in applying to and listed them up. There were quite a few that had my attention, but to start off, I figured I’d aim high and see if there were any positions at Automattic first.</p>
<p>I read many great stories (on HeroPress actually!) of how some folks made it into Automattic and their journey to get there. It was really inspiring reading those stories, along with the different stories of other contributors as well.</p>
<p>I was looking for a junior frontend position but there weren’t any posted at the time. I did see there was an opening for a Happiness Engineer position (support technician) which seemed very interesting. It involved helping people, working with WordPress, and a whole lot more. It was everything that I knew I’d enjoy doing, so after reading the job description, I decided I’d go for it.</p>
<p>Meanwhile, I wanted to also become more involved with WordPress and learn more about the community.</p>
<p>I started helping out in both the WordPress.org and WordPress.com support forums. I contributed to the forums every day whenever I had a chance. I’d hop on in the mornings before work, sometimes during my breaks while at work, and then again in the evenings.</p>
<blockquote><p>Contributing in this way helped me learn so much about the fundamentals of WordPress and the kind of things people wanted to do with it.</p></blockquote>
<p>It also felt good to know whenever I’d get positive responses from the people I helped after solving their issues.</p>
<p>However, I wanted to do more. I noticed there was a WordCamp coming up and it was being held in Kyoto. WordCamp Kyoto 2017 would be my first WordCamp that I ever attended.</p>
<p><a href="https://heropress.com/wp-content/uploads/2022/02/image2.jpg"><img /></a></p>
<p>Traveling was still a big expense at the time (remember I was still on a teacher salary) but I convinced my wife that this was important and I needed to go to this. Fortunately, I was able to find a good deal on both a flight and hotel, so it was off I went!</p>
<p>The Japanese character, 縁 (えん), pronounced as “en”, was the theme of this event. The character has many meanings but in the context of this event, it took on the meaning of “connection” or “connect to” as the official catchphrase.</p>
<p>Honestly, I can’t think of any other way to summarize my first WordCamp experience than with this single word, connection.</p>
<p>My time spent at my first WordCamp is a story for another time, but to sum it up, my experience was 100% positive. I learned a lot through the talks that were given. I also contributed to the translations of some plugins and themes, which was a new way of contribution for me. I was also able to network with many members of the Japanese WordPress community as well.</p>
<blockquote><p>It felt good to be a part of something positive, and from that point I was hooked.</p></blockquote>
<p>WordCamp Tokyo was the next WordCamp being held that year, and you bet I attended that one too. Like what I did in Kyoto, I learned, contributed, and networked.</p>
<p><a href="https://heropress.com/wp-content/uploads/2022/02/image3.jpg"><img /></a></p>
<p>Later that year, I applied to Automattic. After passing an initial resume screening, I went through two different project assignments, two interviews, and finally a trial before making it through. The whole process took three months in total!</p>
<p>For nearly a month though, my days started at 6am and ended at 1am when I was doing my trial on top of my normal full-time job as a teacher and parenting.</p>
<p>I could go on about how arduous that process was, but it would only add another lengthy chapter to this already massively long essay, so I’ll save it for another time.</p>
<p>In short, my days were long and tiring, but what kept me going every day was remembering the promise I made to myself back in DC, and the thought of a brighter future for me and family.</p>
<p>If the trial didn’t pan out, I was completely ready to hop right back on my freelance hustle, but considering how far I came to this point already, a part of me also really wanted to get this job.</p>
<p>I remember getting a ping in the evening in Slack for my final interview which lasted a couple hours, and then finally receiving word that I was being recommended to HR for hire. It was nearly 12am by that time and I still had work the next morning, but I couldn’t sleep at all because I was just way too psyched. The next evening we celebrated with pizza &amp; a much needed craft beer <img src="https://s.w.org/images/core/emoji/13.1.0/72x72/1f642.png" alt="?" class="wp-smiley" /></p>
<p><a href="https://heropress.com/wp-content/uploads/2022/02/image1.jpg"><img /></a></p>
<h2>Present Day</h2>
<p>It’s fascinating to think how my lifestyle dramatically changed ever since discovering WordPress.</p>
<p>Revisiting Tim Ferriss’ freedom multiplier concept, I could say that I was now doing something that I loved. I was no longer constrained by a fixed time schedule. I had the choice to work wherever I wanted. And the colleagues and members of the WordPress community I interact with on a daily basis are some of the most friendly, talented, and passionate groups of folks I know.</p>
<p>I’ve been able to travel to several locations to meet with amazing people because of WordPress.</p>
<p>July 2018 — I traveled to Shirahama, Japan for my first team meetup. One of the highlights there was that I led a small WordPress workshop for kids, which was a lot of fun. Our team meetup was actually <a href="https://news.yahoo.co.jp/byline/yatsuzukaeri/20180813-00092521">featured as a story in Yahoo Japan News</a>!</p>
<p><a href="https://heropress.com/wp-content/uploads/2022/02/image12.jpg"><img /></a></p>
<p>September 2018 — I attended WordCamp Tokyo 2018.</p>

<a href="https://heropress.com/wp-content/uploads/2022/02/image6.jpg"><img width="300" height="225" src="https://heropress.com/wp-content/uploads/2022/02/image6-300x225.jpg" class="attachment-medium size-medium" alt="WordCamp Tokyo 2018 Banner" /></a>
<a href="https://heropress.com/wp-content/uploads/2022/02/image7.jpg"><img width="300" height="225" src="https://heropress.com/wp-content/uploads/2022/02/image7-300x225.jpg" class="attachment-medium size-medium" alt="Paulo and WordCamp attendees" /></a>

<p>October 2018 — I attended my company’s first Grand Meetup in Orlando, Florida.</p>

<a href="https://heropress.com/essays/from-assistant-language-teacher-to-a-life-with-wordpress/image14/"><img width="300" height="232" src="https://heropress.com/wp-content/uploads/2022/02/image14-300x232.jpg" class="attachment-medium size-medium" alt="" /></a>
<a href="https://heropress.com/essays/from-assistant-language-teacher-to-a-life-with-wordpress/image10/"><img width="300" height="225" src="https://heropress.com/wp-content/uploads/2022/02/image10-300x225.jpg" class="attachment-medium size-medium" alt="" /></a>
<a href="https://heropress.com/essays/from-assistant-language-teacher-to-a-life-with-wordpress/image8/"><img width="300" height="300" src="https://heropress.com/wp-content/uploads/2022/02/image8-300x300.jpg" class="attachment-medium size-medium" alt="" /></a>
<a href="https://heropress.com/essays/from-assistant-language-teacher-to-a-life-with-wordpress/image4-4/"><img width="300" height="225" src="https://heropress.com/wp-content/uploads/2022/02/image4-300x225.jpg" class="attachment-medium size-medium" alt="" /></a>

<p>April 2019 — I flew to Seoul, South Korea <a href="https://happinessengineer.blog/2019/04/19/team-meetups/">for my second team meetup</a>.</p>
<p><a href="https://heropress.com/wp-content/uploads/2022/02/image9.jpg"><img /></a></p>
<p>September 2019 — Orlando, Florida for my second Grand Meetup.</p>
<p><a href="https://heropress.com/wp-content/uploads/2022/02/image11.jpg"><img /></a></p>
<p>November 2019 — I traveled back down to Tokyo to attend WordCamp Tokyo 2019. I was also set to attend WordCamp Asia, which was going to be held in Bangkok, Thailand in 2020, but it was unfortunately canceled as the global pandemic had begun.</p>
<p></p>
<p>Not only has WordPress allowed me to leave a meaningful impact on others in a variety of ways, but it has also allowed me and my family a lifestyle in Japan that I wouldn’t have otherwise thought was possible.</p>
<p>We’ve since moved out of our tiny 2LDK apartment and now live in a house conveniently located in the city and close to a major subway line.</p>
<p>We’re no longer penny-pinching like we used to when we go out to do our grocery shopping.</p>
<p>When I work, I usually switch between working from home, working from a cafe, or from a coworking space. I find I’m usually most productive when I’m working from a cafe or nice coffee shop, so I go out when I can.</p>
<p>My wife has been able to quit her job (one which she really disliked) and now has time to pursue her real passions.</p>
<p>We’ve been able to let our son experience and participate in a wide range of extracurricular activities like skiing, piano lessons, club basketball, and club soccer. Skiing is my son’s favorite, so during winter, we usually go at least twice a week since the slopes aren’t that far from us.</p>
<p>We also had our second child in the latter part of last year, and so I’m currently taking advantage of a 6-month parental leave (fully paid) to spend quality time with my baby girl and family. My father-in-law half-jokingly told me recently that if anyone took that amount of time off in a Japanese company they’d probably be told to just quit.</p>
<h2>Conclusion</h2>
<p>I have so much to be grateful for, and a lot of what I owe goes to WordPress.</p>
<p>My journey is far from over though, and there’s still a lot I want to do to give back.</p>
<p>I’m nowhere near as knowledgeable as other folks who have been with WordPress since the beginning. In fact, I came in around when WordPress was at version 4.6 I believe.</p>
<p>However, I’m committed to sharing everything I’ve learned that has helped me get to where I am today.</p>
<blockquote><p>I wouldn’t be here if it wasn’t for the vast amount of free information that has been published on the web about WordPress.</p></blockquote>
<p>And now, with how far WordPress has come along, it doesn’t have to take a lifetime to learn how to build a website anymore. You can be up and running in a day.</p>
<p>Unfortunately, not all newcomers “get” WordPress right away. I’ve come to realize this through the 20,000+ support interactions I’ve had so far in my daily work with WordPress users. So in that regard, I feel there’s still a lot of improvement that can be done on the documentation and education front, which is an area I’m hoping to contribute more to in the coming year.</p>
<p>As a former teacher, with a knack for taking complex ideas and breaking them down into easily understandable explanations, my quest is to democratize simplicity &amp; minimalism for site creators just getting started with WordPress so that they can build their sites with ease, and get on with doing what they do best.</p>
<p>While I was able to leave my life of teaching English behind me, my passion for helping others through education has never left, and my hope is to continue educating others about WordPress for as long as I can.</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 08 Feb 2022 23:00:04 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Paulo Aquino";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:41;a:6:{s:4:"data";s:13:"
	
	
	
	
	
	
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:71:"WPTavern: Convesio Raises $5M to Expand Docker-Powered Hosting Platform";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:30:"https://wptavern.com/?p=129645";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:81:"https://wptavern.com/convesio-raises-5m-to-expand-docker-powered-hosting-platform";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:2166:"<p>WordPress hosting company Convesio has <a href="https://convesio.com/convesio-5m-funding/">raised $5 million</a> from private investors. This funding round includes some of the company&#8217;s original investors who participated in <a href="https://wefunder.com/convesio/">Convesio&#8217;s 2019 Wefunder crowdfunding campaign</a>, which brought in more than $1 million from 800+ investors.</p>



<p>“I started Convesio because legacy hosting providers have not evolved their technology, struggled to provide high uptime, and lacked the capability to scale WordPress on demand,&#8221; Fenelli said. </p>



<p>Convesio aims to make enterprise level hosting more accessible to customers with smaller budgets. Its Docker-powered platform allows sites to auto-scale up and down as necessary. It will automatically deploy multiple containers to handle higher loads and bills additional containers at an hourly rate. </p>



<p>&#8220;Traditional hosts put you on a plan to handle the highest level of resources your website needs, even if you only need them 5 hours a month,&#8221; Fanelli said. &#8220;It’s like leasing a Ferrari to use it for your daily commuting because you also take it to the track for a few laps once a month.&#8221; </p>



<p>Convesio is aiming to take on the larger, more established hosting companies by ‘productizing’ scalability in order to keep costs down. The company boasts that customers can deploy a WordPress site with load balancers, a database cluster, and redundant file system in under a minute, without hiring a SysAdmin. Convesio&#8217;s target market is agencies, designers, and developers. </p>



<p>&#8220;Agencies are a one-to-many sale, easier to support, and early adopters of technology,&#8221; Fanelli said when launching their first funding campaign. &#8220;All these reasons make them a really good fit for what we do. They also have to manage a lot of WordPress sites, so issues like speed, performance, scaling etc are all compounded when you have 100 sites.&#8221;</p>



<p>With this second round of funding, Convesio plans to hire more staff, boost sales and marketing, and accelerate development.</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 08 Feb 2022 04:31:51 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:42;a:6:{s:4:"data";s:13:"
	
	
	
	
	
	
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:73:"WPTavern: Creating Slides With the Carousel Slider Block WordPress Plugin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:30:"https://wptavern.com/?p=129633";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:84:"https://wptavern.com/creating-slides-with-the-carousel-slider-block-wordpress-plugin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:5049:"<p class="has-drop-cap">Over the weekend, Virgiliu Diaconu asked me to check out his <a href="https://wordpress.org/plugins/carousel-block/">Carousel Slider Block</a> plugin, a project he has maintained for three years. It has slowly garnered more than 5,000 active installs since its release.</p>



<p>I get emails like this every day. More often than not, the projects are fundamentally broken or are a bit too spammy for my taste. Like so many others, I ask myself, <em>Could this be one of those diamonds in the rough?</em> I am always optimistic enough to hold out the tiniest sliver of hope.</p>



<p>I should preface this review by saying that I have a general dislike of sliders and carousels. They are often used to hide away content, forcing site visitors to take additional action to find it. Or, they begin to automatically slide before users finish reading the first panel. I tolerate them on some sites if used to tidy inconsequential content.</p>



<p>However, I know a lot of people like them. The question I needed to answer was whether this was a solid implementation. The TLDR version is it handles far better than others I have seen.</p>



<p>What makes Block Slider Carousel a solid plugin is that it is, <em>mostly</em>, WYSIWYG. It also does not complicate the experience more than it has to. There is one fixable problem, which I will get to. Overall, creating a carousel full of slides was straightforward.</p>



<p>Users merely need to insert the Carousel Slider block in the editor to create a new carousel. The UI is similar to the core Row block when inserting slides &#8212; click the &#8220;+&#8221; icon. From there, users can add any other block within each:</p>



<img />Initial carousel insertion.



<p>I added a screenshot of this default setup to show that the plugin feels almost native to WordPress. There is no management via a separate custom post type screen. The slides do not all stack atop one another, looking nothing like their final output on the front end. And it does not have a dizzying array of configuration settings.</p>



<p>The primary difference between the editor and front end is the horizontal scrollbar shown on the post-editing screen, used for navigating the carousel. Once a few slides are added, it appears below the outer Slider Carousel block:</p>



<img />Slider Carousel with simple image slides.



<p>I would love to see that replaced with the previous/next arrows and dots navigation in the editor view if either of them is enabled. The plugin allows users to toggle both on and off.</p>



<p>The block&#8217;s options are the baseline controls expected from such a plugin. Users can control the number of shown slides, how many to show on scroll, and the animation speed. It includes toggles to loop back around at the end of the carousel and an auto-play option.</p>



<p>There is an RTL mode, which was not immediately clear was working correctly. Switching it on did not seem to make any changes in the editor. However, the slides are shown in reverse order on the front end.</p>



<p>The block has a separate panel for controlling the number of slides on smaller screens. Users can manually set the breakpoint or leave it to the default of <code>768px</code>.</p>



<p>The biggest problem I ran into with the plugin was that it overwrote block margins within the slides. As shown in the following screenshot, the Heading, Paragraph, and Buttons blocks have no space between them:</p>



<img />No spacing between blocks.



<p>The theme I am testing uses the new &#8220;block gap&#8221; feature in WordPress 5.9 to handle vertical spacing. However, with the way the CSS is written in the plugin, it was likely an issue in previous versions. Carousel Slider Block&#8217;s styles zero out block margins with a high level of specificity.</p>



<p>This issue is only in the editor. If you can get past not knowing exactly how each slide will look until previewing or publishing, it is not too rough of an experience. But, this should be an easy fix for the plugin author. I removed the offending code without issue.</p>



<img />Corrected spacing between blocks.



<p>And my sanity was restored &#8212; <em>I am a stickler for decent spacing.</em></p>



<p>A welcome addition would be color options for the arrow and dot navigation and features like padding, border, background, and block spacing. This would make it easier for end-users to customize the carousel container.</p>



<p><em>Would I use this plugin?</em> Knowing myself, I would likely build a custom block, overengineering it when there is a perfectly acceptable solution at hand. Of course, I do not use sliders. However, I would be comfortable handing it over to a client if I still did such work. Plus, the plugin&#8217;s front-end CSS is lightweight enough to overwrite for custom designs.</p>



<div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content"><a href="https://wordpress.org/plugins/carousel-block/">Carousel Slider Block for Gutenberg</a></blockquote>
</div>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 08 Feb 2022 02:06:11 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:14:"Justin Tadlock";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:43;a:6:{s:4:"data";s:13:"
	
	
	
	
	
	
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:64:"WordPress.org blog: WP Briefing: Episode 24: Three Goals in 2022";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:53:"https://wordpress.org/news/?post_type=podcast&p=12176";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:66:"https://wordpress.org/news/2022/02/episode-24-three-goals-in-2022/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:9158:"<p>In episode 24 of the WordPress Briefing, the Project&#8217;s Executive Director reviews three big-picture goals for the year: Increased Gutenberg adoption, support of all open source alternatives, and stewarding the open source ethos.</p>



<p><em><strong>Have a question you&#8217;d like answered? You can submit them to <a href="mailto:wpbriefing@wordpress.org">wpbriefing@wordpress.org</a>, either written or as a voice recording.</strong></em></p>



<h2 id="credits">Credits</h2>



<ul><li>Editor:&nbsp;<a href="https://profiles.wordpress.org/dustinhartzler/">Dustin Hartzler</a></li><li>Logo:&nbsp;<a href="https://profiles.wordpress.org/beafialho/">Beatriz Fialho</a></li><li>Production:&nbsp;<a href="https://profiles.wordpress.org/cbringmann/">Chloé Bringmann</a></li><li>Song: Fearless First by Kevin MacLeod</li></ul>



<h2 id="references">References</h2>



<ul><li><a href="https://make.wordpress.org/project/2022/01/21/big-picture-goals-2022/">Big Picture Goals 2022</a></li><li><a href="https://make.wordpress.org/core/2022/01/26/preliminary-roadmap-for-6-0/">Preliminary Roadmap for 6.0</a> (Gutenberg Phase 2)</li><li><a href="https://wordpress.org/news/2021/06/a-new-design-is-coming-to-wordpress-news/">A New News Design</a></li><li><a href="https://wpmake.tumblr.com/">Making WordPress</a>: Unofficial aggregator for all&nbsp;<a href="https://make.wordpress.org/">Making WordPress blogs</a></li></ul>



<h2 id="transcript">Transcript</h2>



<span id="more-12176"></span>



<h2 id="episode-24">Episode 24</h2>



<p><strong>Josepha Haden Chomphosy&nbsp; </strong>00:00</p>



<p>Hello everyone, and welcome to the WordPress Briefing, the podcast where you can catch quick explanations of the ideas behind the WordPress open source project. Some insight into the community that supports it and get a small list of big things coming up in the next two weeks. I&#8217;m your host, Josepha Haden Chomphosy. Here we go!</p>



<p><strong>Josepha Haden Chomphosy&nbsp; </strong>01:07</p>



<p>A couple of weeks ago, I published a post about the big picture goals for the WordPress project in 2022. As I was thinking through our planned releases for the year and looking out toward what would spell success for WordPress over the next three years, three things really lined up in both sets of answers for me.</p>



<p><strong>Josepha Haden Chomphosy&nbsp; </strong>01:23</p>



<p>I provided some detail on how we can work toward these goals in the post, which I will link for you in the show notes, but I also wanted to take some time to explain why I feel we have to work toward these goals this year. So these all build on one another. To refresh your memory of the three big focuses, they are one to drive adoption of the new editor in WordPress, support open source alternatives for site building necessities, and three, open source stewardship.&nbsp;</p>



<p><strong>Josepha Haden Chomphosy&nbsp; </strong>01:52</p>



<p>So the first one; is driving the adoption of the new WordPress editor. Early on in the start of the Gutenberg Project, folks could not go two days without hearing me talk about the phases of adoption and how those line up with the phases of Gutenberg, and who would need our support the most in each of those phases.</p>



<p><strong>Josepha Haden Chomphosy&nbsp; </strong>02:09</p>



<p>I have always believed that what we would be shipping at this point in our project would prove the plausible promise of what we were doing in phase one. That&#8217;s definitely what I&#8217;m seeing from what was shipped in 5.9, as well as what we plan to ship in May with 6.0. And the people who need the most support right now are absolutely our users, your clients, no matter whether they were not keeping up with WordPress developments or simply were waiting to see what all the fuss was about.&nbsp;</p>



<p><strong>Josepha Haden Chomphosy&nbsp; </strong>02:37</p>



<p>There will be people who look to you as someone who has been here a while to help them make sense of what they&#8217;re seeing. And what I find so exciting about this adoption, sort of, work in the WordPress project is that this is the time when we as practitioners of WordPress, no matter whether you are a designer or a developer or builder, business coach. This is the time when we get to guide others through the hardest parts of our learning processes.&nbsp;</p>



<p><strong>Josepha Haden Chomphosy&nbsp; </strong>03:07</p>



<p>The process of helping people to learn new technologies relies not only on your hard-won expertise but also on the belief that the future is worth fighting for. Enabling someone’s success is an investment in the future and investment for that person or for WordPress or your community. All investments are welcome here.&nbsp;</p>



<p><strong>Josepha Haden Chomphosy&nbsp; </strong>03:28</p>



<p>Fortunately, table stakes are just that you care. And speaking of future investments, the second focus is open source alternatives for site building necessities. So things like images, forms, stores, themes, etc. It literally just things you need to build a site. I would like to start by saying that I am completely aware of the fact that 99% of WordPress users will never care about open source freedoms and philosophies in the same way that WordPress maintainers and contributors care about open source freedoms and philosophies.&nbsp;</p>



<p><strong>Josepha Haden Chomphosy&nbsp; </strong>04:04</p>



<p>You could substitute the name of any other open source project right there, and the statement would still be true. And yet, I will always believe that people should have the rights and freedoms that open source brings to them even if they do not know they are there. And so it makes all the sense in the world to me that as a project and open source community, we should strive to make choosing Open Source as easy as possible.&nbsp;</p>



<p><strong>Josepha Haden Chomphosy&nbsp; </strong>04:33</p>



<p>And finally, open source stewardship is one of the focuses for this year. This one is obviously about supporting open source as a concept and maintaining WordPress as a project. But I also think that it is relevant to our current global circumstances. Open Source suddenly became very visible to the public eye last year following the Log4J vulnerability, and ever since then, I&#8217;ve been hearing consistent concern over how We make sure that WordPress is sustainable moving into the future. Fortunately, this is a topic that&#8217;s near and dear to my heart. And I have been delighted to see so many community members bringing that conversation to the forefront.&nbsp;</p>



<p><strong>Josepha Haden Chomphosy&nbsp; </strong>05:14</p>



<p>There is a lot that is done in the WordPress project to keep us from the tragedy of the commons. But that work honestly never ends. Not only does it not end, but as we get bigger, there is more and more that we can and should be doing to keep us around for the long term. And, of course, for the keen readers of my posts, there&#8217;s a bonus focus.&nbsp;</p>



<p><strong>Josepha Haden Chomphosy&nbsp; </strong>05:39</p>



<p>The bonus focus is, of course, that WordPress turns 20 years old next year. This year, we will also be seeing some preparatory work for that major milestone as well.</p>



<p><strong>Josepha Haden Chomphosy&nbsp; </strong>05:56</p>



<p>So that brings us today to our small list of big things. There is a redesign of the News Page coming. We&#8217;ve been talking about this over on make.wordpress.org/design for a bit since like June of last year or something. But it&#8217;s coming in the next few weeks. I&#8217;ll share a link to the GitHub repo in case anyone has any specific things that they see as they are reading through all of our many news stories that come out on that particular page. I think it&#8217;s beautiful, and I&#8217;m very excited to take a look at it.&nbsp;</p>



<p><strong>Josepha Haden Chomphosy&nbsp; </strong>06:30</p>



<p>The second thing is that planning is underway for WordPress 6.0; that release that we&#8217;re doing in May. I&#8217;ll add the project page link to the show notes. I&#8217;ve had a few raised hands for that release squad. But if you&#8217;re interested in participating in the release, I encourage you to keep an eye out on make.wordpress.org/core for updates and any news about how to get involved.&nbsp;</p>



<p><strong>Josepha Haden Chomphosy&nbsp; </strong>06:53</p>



<p>And my third thing is actually that, in general, there are a lot of opportunities to contribute right now. There are discussions about projects, goals, and dreams happening all over the place. I&#8217;ll link in the show notes below the unofficial project “firehose” where you can see all the headlines and quickly find discussions that might be interesting to you.&nbsp;</p>



<p><strong>Josepha Haden Chomphosy&nbsp; </strong>07:18</p>



<p>And that, my friends, is your small list of big things. Thank you for tuning in today for the WordPress Briefing. I&#8217;m your host Josepha Haden Chomphosy, and I&#8217;ll see you again in a couple of weeks.</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 07 Feb 2022 12:00:00 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:15:"Chloe Bringmann";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:44;a:6:{s:4:"data";s:13:"
	
	
	
	
	
	
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:145:"Gutenberg Times: Gutenberg Changelog #60 – Restricting Customization in a Full-Site Editing World, Gutenberg 12.5 and Roadmap for WordPress 6.0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:53:"https://gutenbergtimes.com/?post_type=podcast&p=20378";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:113:"https://gutenbergtimes.com/podcast/gutenberg-changelog-60-restricting-customization-in-a-full-site-editing-world/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:92476:"<p>Birgit Pauli-Haack and Grzegorz Ziolkowski discuss with their guest Matias Ventura restricting customization in a full-site editing world, Gutenberg 12.5 and Gutenberg changes coming with WordPress 6.0. </p>



<ul><li>Music:&nbsp;<a href="https://soundcloud.com/xirclebox">Homer Gaines</a></li><li>Editor:&nbsp;<a href="https://www.linkedin.com/in/sandy-reed/">Sandy Reed</a></li><li>Logo:&nbsp;<a href="https://markuraine.com/">Mark Uraine</a></li><li>Production:&nbsp;<a href="https://paulisystems.net/wordpress-consulting">Pauli Systems</a></li></ul>



<span id="more-20378"></span>



<p><a href="https://gutenbergtimes.com/podcast/gutenberg-changelog-60-restricting-customization-in-a-full-site-editing-world#shownotes">Show Notes </a>/ <a href="https://gutenbergtimes.com/podcast/gutenberg-changelog-60-restricting-customization-in-a-full-site-editing-world#transcript">Transcript</a></p>



<p><strong>Subscribe to the&nbsp;<a href="https://gutenbergtimes.com/podcast/">Gutenberg Changelog</a>&nbsp;podcast via your favorite podcast apps!</strong><br />?️&nbsp;<a href="https://open.spotify.com/show/620NwVKQJGdTupy36zYxvg?mc_cid=4b6c9f88fe">Spotify</a>&nbsp;|&nbsp;<a href="https://podcasts.google.com/feed/aHR0cHM6Ly9ndXRlbmJlcmd0aW1lcy5jb20vZmVlZC9wb2RjYXN0">Google</a>&nbsp;|&nbsp;<a href="https://podcasts.apple.com/us/podcast/gutenberg-changelog/id1469294475">iTunes</a>&nbsp;|&nbsp;<a href="https://pca.st/podcast/f8445ec0-7508-0137-f267-1d245fc5f9cf">PocketCasts</a>&nbsp;|&nbsp;<a href="https://www.stitcher.com/show/gutenberg-changelog">Stitcher</a>&nbsp;|<br />?️&nbsp;<a href="https://www.podbean.com/podcast-detail/chi7j-9904a/Gutenberg-Changelog-Podcast">Pod Bean</a>&nbsp;|&nbsp;<a href="https://castbox.fm/channel/Gutenberg-Changelog-id2173375">CastBox</a>&nbsp;|&nbsp;<a href="https://www.podchaser.com/podcasts/gutenberg-changelog-878239/">Podchaser</a>&nbsp;|&nbsp;<a href="https://gutenbergtimes.com/feed/podcast">RSS Feed</a>&nbsp;</p>



<p class="has-large-font-size" id="shownotes"><strong>Show Notes </strong></p>



<p><a href="https://www.twitch.tv/videos/1285533518">Twitch Stream session</a> with <strong>Ryan Welcher</strong></p>



<p><a href="https://github.com/ryanwelcher/gutenberg-block-level-locking">Demo Code on GitHub</a></p>



<p><a href="https://gutenbergtimes.com/how-to-disable-theme-features-and-lock-block-templates-for-full-site-editing-in-wordpress/">How to disable theme features and Lock Block Templates for Full-Site Editing in WordPress</a></p>



<ul><li>Dev Note: <a href="https://make.wordpress.org/core/2022/01/08/locking-blocks-in-wordpress-5-9/">Locking Blocks in WordPress 5.9</a></li><li><a href="https://github.com/WordPress/gutenberg/issues/29864">Tracking issue: On Locking and TemplateLocking</a> (#29864) March 2021&nbsp;</li><li><a href="https://github.com/WordPress/gutenberg/pull/26128">Add template lock attribute to column and group</a> (#26128) October 2020</li><li><a href="https://github.com/WordPress/gutenberg/issues/27597">Proposal: robust permissions system for FSE theme templates </a>(27597)</li><li><a href="https://github.com/WordPress/gutenberg/issues/37489">Exploration around multi-entity permission management</a> (#37489)&nbsp;</li></ul>



<p><a href="https://make.wordpress.org/core/2022/01/26/preliminary-roadmap-for-6-0/">Preliminary Roadmap for 6.0 (Gutenberg Phase 2)</a> by Matias Ventura</p>



<p><strong>Gutenberg 12.5</strong></p>



<p><a href="https://make.wordpress.org/core/2022/02/03/whats-new-in-gutenberg-12-5-february-2nd/">What’s new in Gutenberg 12.5? (February 2nd)</a> by Fabian Kägy</p>



<p><a href="https://wptavern.com/gutenberg-12-5-introduces-global-styles-variations-preserves-adjacent-button-styling-and-adds-alpha-transparency-to-color-pickers">Gutenberg 12.5 Introduces Global Styles Variations, Preserves Adjacent Button Styling, and Adds Alpha Transparency to Color Pickers</a></p>



<p><a href="https://github.com/WordPress/gutenberg/issues/27075">Consider a standardized way to modify hover/focus/active states for blocks</a> (Issue 27075)</p>



<p><a href="https://www.meetup.com/wordpress-social-learning/events/283720638/">Gutenberg Developer Hours </a>Feb 22 at 11am  ET / 16:00 UTC</p>



<p class="has-large-font-size" id="transcript">Transcript</p>



<p><em>Birgit Pauli-Haack</em>: Hello and welcome to our 60th episode of the Gutenberg Changelog Podcast. In today&#8217;s episode, we will talk about Restricting Customization in our full-site editing world. Gutenberg 12.5 and what&#8217;s on the plate for Gutenberg&#8217;s Phase 2, coming to WordPress 6.0. I am Birgit Pauli-Haack, curator at the Gutenberg Times and WordPress developer advocate. And I&#8217;m here with my co-host Grzegorz Ziolkowski, JavaScript developer at Automattic and WordPress core contributor. Howdy Grzegorz, how are you today?</p>



<p><em>Grzegorz Ziolkowski</em>: Hello! I&#8217;m good. Thank you. So last week we celebrated WordPress 5.9 release. That&#8217;s a huge one, yeah, we did it. So it took five years to bring blocks everywhere on the WordPress site. And everyone now can switch themes and play with the new kit on the block, which is a block theme concept. So I&#8217;m really excited about that and I see also a lot of excitement in social media and people are trying that out and yeah, it&#8217;s mind blowing how everything changed.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. And I&#8217;m so thrilled to welcome our guest today, Matias Ventura sometimes called the spark of Gutenberg, well he is its principal architect. So last time we had Matias on the Gutenberg Times Show was November 30th, 2018. Just before we all headed out to Nashville for WordCamp US, and just before the release of 5.0, so thank you for joining us today at this one, after this wonderful release for full-site editing in core.</p>



<p><em>Matias Ventura</em>: Hello, hello. Thank you for having me back. Like before 5.0, that&#8217;s a while back. It feels both like yesterday and forever ago.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. I feel the same way, so many years and then we had a pandemic in between which kind of made the years even longer. So it&#8217;s a great pleasure to have you and the project has grown and matured so much. So it&#8217;s really mind-boggling how far it has come. And so the first version, minimal viable product MVP, the beta version or whatever you call it, of the full-site editing experience has been released. How are you feeling about it and what are the first insights from users?</p>



<p><em>Matias Ventura</em>: Yeah, I feel really relieved that we got to this point, is being one of the main promises of the project to, like Greg said, like to bring blocks everywhere essentially. And this is the release that marks, I think will mark like a historical milestone where we finally were able to bring everything out to people. So, it&#8217;s a huge celebratory milestone for me, the work from so many people over so many years is finally, in a way it also just the beginning, because once you put things out there is when you really start seeing how people interact with it, the feedback, the things to change. So in a way it&#8217;s just the first step, but it&#8217;s also the culmination of a lot of work. So it has that both elements to it, I guess.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. I feel that too. And I&#8217;m delighted, there&#8217;s so much chat around full-site editing. And listeners, long time listeners here on the Changelog know that we have been talking about it for at least two years. So, but people care greatly about it and they definitely see the potential and also, the theme developers are excited. So, but before we talk what comes to WordPress 6.0, and I just realized we have the 60th episode and we&#8217;re talking about WordPress 6.0 so that&#8217;s a coincidence. So shall we briefly go over the locking mechanism for block themes, the site editor and the blocks. It was part of a question on Twitter Matias and you had some great examples of what a developer already can use to lock down the parts.</p>



<p><em>Matias Ventura</em>: I think it also speaks to both the ambition and expanse of the project, that we&#8217;re just celebrating all these new tools, all these extensibility tools, all these design elements that people have to play with our site. And now we&#8217;re focusing on locking them down, but there&#8217;s a reason to that. It&#8217;s like the WordPress project is really about all of these use cases. And while it&#8217;s been important to bring a lot of these tools to end users, people that are just starting their site on their own and be able to modify things that before were really locked down to them. That&#8217;s really important to really democratize access to all of these stuff. But at the same time, WordPress is used for very different kinds of sites and people that maintain sites for others like site builders, or agencies or freelancers are also users of WordPress, and these release also has tools for them.</p>



<p>And some of those tools are precisely about restricting and locking down and controlling what these tools are, when and how these tools are exposed to users. There&#8217;s many, I think it&#8217;s like from my perspective, this is the first time that WordPress has so much control and granular control over this when it comes to themes. So I&#8217;m quite excited, but I think we haven&#8217;t done a proper job at bringing that into focus, because we have something like the theme.json tool that was introduced in 5.8 and improve a lot for 5.9, that really allows a site maintainer, a theme developer to have a lot of control over what appearance tools are exposed in the interface, not just in terms of registering color palettes and the presets that people are used to, but also in really saying, &#8220;Okay, I don&#8217;t want the paragraph block to have any of these typography tools.&#8221;</p>



<p>You cannot control the line height, you cannot control the font size, you can only change the color and pick them on this presets. You can do all sorts of combinations there, and I think that, that really gives a lot of power to the site maintainer to really control that experience. But the cool thing is that since all the blocks are using these same APIs, it just works with every block, not just core blocks, but also third-party blocks that use these APIs. So that&#8217;s a way to really scale the ability to control essentially how all blocks work, without the developer needing to do anything specific for like a third-party block from, I don&#8217;t know, WooCommerce or anything, it should just work. And that&#8217;s just one part of it, we also have the other API that you mentioned locking, which works at a block level.</p>



<p>You can really restrict when a block can be moved, removed, or inserted in any area of the&#8230; like in a block theme essentially anywhere you can have a side bar that&#8217;s entirely locked down to editors, and you can imagine all the combinations that you can have with that. And these lock in mechanisms essentially turn the editor instead of being like blocks that you can move all around, the blocks are sort of set in there and you&#8217;re just editing the text or manipulating some of the attributes, essentially what is exposed. And if you combine this with a theme.json, you can say, okay, now you&#8217;re just modifying the attributes that the theme allowed to modify, like only choosing presets for a heading for example, or stuff like that. And I think it&#8217;s a really cool set of features that work really well together. And I don&#8217;t think we’ve done a lot of outreach around how they can be combined. We talk a bit about theme.json, and I think there&#8217;s some content out there about locking, but the combination of the two with specific use cases I think can be pretty powerful.</p>



<p><em>Grzegorz Ziolkowski</em>: Yeah. This is also a year that needs further research because I can envision some use cases. People would like to put some parts of the site in their read only mode, so you can&#8217;t even change attributes like you could right now. And all of those features are hidden for now because it&#8217;s not something that for the default use case on the site are necessarily like individual block locking could be, if you would block that during designing your template, how would you change it inside? So it&#8217;s something that needs further thinking, but it&#8217;s there, it&#8217;s just, you need to know how to get to it. And we will talk about that today. That&#8217;s why we also introduce some features to look at the codes so people can just be more familiar and change like they do surgery of the HTML, just to ensure that you can add also today.</p>



<p><em>Matias Ventura</em>: Yeah, exactly. Right now that works essentially with a code editor, you need to modify the attribute in the code editor. Eventually there will be a UI for this and this UI can also be, the idea is that this will be controlled by user roles. So maybe if you&#8217;re a site administrator, you can just using the UI itself, you can go and lock the different things that you unlocked, and you will have direct UI to do that. But an editor or an author, when they get there, they wouldn&#8217;t see the UI itself. They would just get the&#8230; whatever is locked, is locked and they cannot change it.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. There also had been a, from the beginning actually, or very early in the project, the concept of a block template where you can say, &#8220;Okay, for a custom post type, I have only a certain amount of blocks that come into the page for it.&#8221; And you only can use certain blocks and you only can change the content for instance, that locking API has been in the site already, or in the product already, but it was not exposed to non-developers. Yeah. And I think getting that a little bit higher on the user interface, instead of having to write code about it, I think that&#8217;s a great development for later. I&#8217;m not sure actually we&#8217;ll make it in 6.0, but because that&#8217;s a huge undertaking by itself I would think, because you need to go through all those concepts.</p>



<p><em>Matias Ventura</em>: Yeah. I think it can be like, it&#8217;s very close because it&#8217;s also how the whole project evolves. Some of these tools are added just through code initially, you mentioned, the templates have had locking mechanisms since 5.0, this new tool really expands it to block so, and since blocks can be edited in the code editor, now this becomes available for more people. And the next step is really just to expose it in the UI. There&#8217;s really, there needs to be some work there to really finalize the design, but in terms of effort is not too much to just have it there. We also want to have it on the list view, the panel on the side where you can see all the list of locks, and there it would be very easy for a site administrator to just click on a lock icon and just determine exactly what needs to be locked.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah, that sounds excellent. So I just want to also know dear listeners that Ryan Welcher actually walked through some of the demos of that in his Twitch Stream on February 3rd. And he also shared the code for his demo on a GitHub repository. So we&#8217;ll show the link in the show notes. That is definitely for developers of course, but we also will share some of the links and documentation for the things that Matias and Grzegorz just mentioned.&nbsp;</p>



<p><em>Matias Ventura</em>: And I just want to add that also, since this works at the block level, patterns themselves can be locked down in different ways, so you can create patterns where certain elements are locked. So it really expands that initial set of locking that we had for templates to essentially anything, like anything can be manipulated that way now.</p>



<p><em>Birgit Pauli-Haack</em>: All right. Yeah.</p>



<p><em>Grzegorz Ziolkowski</em>: That is to summarize the options then that you will see in the show notes in the links. So it&#8217;s possible to lock in usual block, but also the template of inner block. So if you, when you have a group, so you can lock down what&#8217;s inside the group and there is also some work to bring some more robust permission systems for all of that. So, when you have navigation block, which is in some entity, reusable block and all those concepts, so they can have different permission levels. And in general, it needs to be laid out in a nice way so we have a coherent system.</p>



<p><em>Matias Ventura</em>: It&#8217;s cool that you mentioned reusable blocks, because there&#8217;s been some feedback, I think ever since 5.8, that it&#8217;s too easy to modify reusable blocks in a way. And for some people that&#8217;s great, that&#8217;s what the experience they want, for many others that&#8217;s not. And the ability to lock things down, like you can just lock a reusable block down and the UI would honor that experience. So it&#8217;s also something that addresses those issues because everything is blocks ultimately.</p>



<p><em>Birgit Pauli-Haack</em>: Yes. And I think it&#8217;s really important to emphasize that you need to first have it all wide open before you actually know what you need to lock down. And if the features are not in the system yet, it&#8217;s hard to make those locks work. So it&#8217;s kind of the chicken and egg thing, and we know what the chicken is and we know what the egg is, but yeah, what comes first is actually it needs to be open before we can lock it down.</p>



<h3 id="phase-2-for-wordpress-6-0"><strong>Phase 2 for WordPress 6.0</strong></h3>



<p>And now I&#8217;m really happy to go to the preliminary roadmap of Gutenberg phase 2 for 6.0. But just because we were on the topic of Adoption and all that, can we take that section first for those who want to see if I want, do I want to really adopt it yet? And what are the possibilities? So one thing was that the theme.json file is actually not only for block themes, it&#8217;s really also a great feature to use for non-block themes or as we sometimes call them plastic themes. And that&#8217;s already in 5.8, but I really found it a much easier way to switch off gradients, disable custom colors, orphans, disable Duotones with just a few lines of codes. What do you see here for 6.0 for the classic themes?</p>



<p><em>Matias Ventura</em>: Yeah. Well, there&#8217;s a lot of refinements still to be done on theme.json, it&#8217;s an ongoing process, more things to control, more things to configure like we discussed. There&#8217;s some work going on Duotone, that still needs to be done like theme.json works, but the UI doesn&#8217;t necessarily work. There&#8217;s still the chance of making some of the&#8230; exposing some of the theme.json interface in, like the Customizer for classic themes or some other view, that&#8217;s something that would need to be explored because right now the UI for theme.json is global styles, which you get in the site editor, so there&#8217;s some work there to be done.</p>



<p>I think the thing that I&#8217;m most interested about for gradual adoption is, we managed to learn like this, we&#8217;ve been calling it the focus template part on the&#8230; sort of to refer to it somehow, which is essentially a view in the site editor that allows you to focus on a single template part, like a header part, or a side bar, or a footer or anything really that you can create. This view works with like the&#8230; it has responsive handles and so on. And it&#8217;s a nice experience just to deal with a specific part of the site, and there&#8217;s no reason why this cannot be open. In fact, we actually shipped some functions, some PHP functions to call one of the header template part or the footer, or some other template part in PHP. So you can use them in your PHP template files just fine. But what we don&#8217;t have yet is that if you do that, but you don&#8217;t get access to the site editor, there&#8217;s really no way for the user to edit the content of the template part.</p>



<p>So that&#8217;s something that would be nice to open up in 6.0. So essentially, if you have a normal PHP theme, you can use these functions and then somewhere in the UI, the user can go and just get this focus template part mode. So they wouldn&#8217;t go into the full-site editor, because that&#8217;s not how these things work. They would go into this focus areas to just handle blocks there. So it&#8217;s essentially a different kind of widget area where it&#8217;s visually rich and it&#8217;s visually more like what you see is what you get essentially.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. It&#8217;s yeah, I understand that. So another item on your roadmap are the explorations on dynamic templates for blocks. That&#8217;s sounds really interesting. So what do you envision there?</p>



<p><em>Matias Ventura</em>: Yeah, so this is like the other part is if say a theme wants to start adding some block templates, I don&#8217;t know. Do you want to turn your archive into something that&#8217;s editable or even vice versa? You have a block theme and you&#8217;re using it for a site, but you say you have like a, I don&#8217;t know, you&#8217;re running the New York Times and you have a specific page that is really dynamic and you don&#8217;t want it to be editing the site editors, so you end up using a PHP template for that, that sort of combinations. Because I think we&#8217;ve talked a lot about block themes and classic themes, that&#8217;s not really, it&#8217;s a very primitive split, like in reality, things are just very flexible and they will be more flexible. And that&#8217;s part of this gradual adoption sort of bucket, is that you can have some templates that are entirely dynamic like PHP driven, others that are configurable in the site editor and any mix in between.</p>



<p>It&#8217;s interesting to see some of the work that the WooCommerce team is doing, but I think there are some plugins as well that they, when these plugins that have a lot of templates that historically they were added as PHP templates that you could customize in a theme, but otherwise the plugin also ship some of them, that what they are doing is that they are wrapping some of the dynamic parts of these templates in essentially server render blocks. So you get like, you can edit the product template of a WooCommerce site, but maybe the templates, the part that displays products, that&#8217;s just driven by PHP. So you get a place called the render site editor, but you can customize around it. And once WooCommerce has the necessary blocks to represent that template just with blocks, maybe they update that. But it&#8217;s like, it shows sort of the flexibility of you don&#8217;t need to turn everything into blocks.</p>



<p>In some cases you might say, &#8220;Oh, like here, this is going to render a chart based on, I don&#8217;t know, the weather forecast or whatever it is, I don&#8217;t care about users interacting with this in any way in the site editor.&#8221; And that&#8217;s where you can let just regular PHP templates handle that part, but maybe the user can customize around that or the text above and below using the editor. All of those combinations I think are really going to become more prominent, because I think that cases where you just have a purely one theme in one site or the other are going to be, for some sites are going to be rare because you have different kinds of combinations.</p>



<p><em>Birgit Pauli-Haack</em>: Well, that&#8217;s good to hear that there&#8217;s still a place for classic PHP themes, especially when you have complex sites because you, well, WordPress runs on PHP, but there are the hooks in to get the block part of it, and part of the template. That&#8217;s really interesting. Thank you.</p>



<p><em>Grzegorz Ziolkowski</em>: Can you say that, like working in a similar way, how block patterns work? So, for the block themes, like the other way around, you can want, to port some of the functionality and then you would just wrap that into a pattern or whatever new we add. And then just take this snippet that&#8217;s generated on the fly with whatever you need and just get embedded into the template.</p>



<p><em>Matias Ventura</em>: Yeah, exactly. It&#8217;s sort of like PHP Mbits in a way. And it&#8217;s like that the only traders is that you don&#8217;t get editing capabilities, which will be totally fine for many use cases. So it&#8217;s sort of like exactly the opposite of patterns in a way, it&#8217;s like a PHP Mbit that you don&#8217;t get the block interface for it because it doesn&#8217;t need to. It&#8217;s just like a single block that you can move around because it&#8217;s part of the block system, but you cannot introspect or edit its specific details. And I think that&#8217;s going to be like, again it&#8217;s very easy to create one of these PHP Mbits because that&#8217;s how WordPress works. So it&#8217;s just going to be there, it can be previewed, or you can show a placeholder, like that&#8217;s going to be, the options there are really wide open I think.</p>



<p><em>Birgit Pauli-Haack</em>: So to bring it a little bit to the point of the controversy out there, or fear out there, the block themes actually are not getting rid of PHP developers. They actually give the PHP developers now so much more tools at the hand for flexibility, so they can really mix and match all the block parts into their theme. So I really love that idea and I&#8217;m glad that you&#8217;re here in the show to, going to set me straight and all my ideas and that, it goes really further. So then a lot of new features and enhancement in your preliminary roadmap, what are the highlights for site editor, layouts and blocks? And are there features you are particularly excited about the tiers?</p>



<p><em>Matias Ventura</em>: Yeah. So in a way this release, I think I mentioned it, to me it&#8217;s more like the culmination of the phase 2. This is where we get to do at least the things that we set out to do. It doesn&#8217;t mean that it will be finished by any means or like that, we will continue to work on this for many years, but what I&#8217;m particularly interested about is going back to patterns and the things we can do around patterns, which we haven&#8217;t paid a lot of attention to in the&#8230; Like there&#8217;s been some work in the last couple releases, but since we introduced patterns there haven&#8217;t been like big major iterations on them.</p>



<p>And one of the key things for me is bringing patterns more into the template creation flow because blocks are sometimes a bit too granular for that experience. Like if you&#8217;re laying out a page or a template, you want to say, &#8220;Okay, I want to first define this header section, then this main section. Maybe with a sidebar, like this footer section or whatever is in the middle and so on when you&#8217;re creating a homepage.</p>



<p>So you&#8217;re really dealing with patterns first. And then maybe you&#8217;re tweaking the pattern with its blocks and so on. But you&#8217;re not creating from scratch like, &#8220;Oh, this is a group. And then this other group. And then this cover, and then this&#8230;&#8221; Like, that&#8217;s a bit too granular. Which can be fine for a theme developer, but for a user it&#8217;s really more about the patterns. Maybe even the patterns that the theme registers so you can very quickly piece together this sort of page.</p>



<p>And we don&#8217;t have&#8230; Right now, like patterns are there in Inserter, but the discovery is not super sophisticated. And from the canvas itself, you need to search for a pattern and so on. So it&#8217;d be nice if&#8230; And some of the proposals are that, if you&#8217;re in the root of a template, what opens when you click on the Inserter are just patterns. Like the quick Inserter that you get in between the pages, but focus on patterns and on sections that are&#8230; If you&#8217;re starting blank, the first thing is probably going to be a header. So we can connect that with a sort of semantic template parts, there are already headers and you can choose among these headers.</p>



<p>And if this is connected with a patterns directory, you can see among all the headers that are available in the directory as a starting point. And this could even expand to, you might be able to say, &#8220;Oh, I really like the header from this theme. And I want to use that.&#8221; And since everything is compatible, everything is just blocks, you&#8217;ll be able to say, &#8220;To explore and only see the headers from all the themes in the directory.&#8221; So you can pick one of those and then sort of assemble your site through those pieces.</p>



<p>So that experience is really what I&#8217;m interested about in exploring more. This sort of like section based building of site. And patterns are a key ingredient to that.</p>



<p><em>Birgit Pauli-Haack</em>: Indeed, yes. There wasn&#8217;t a discussion of&#8230; That sounds really fabulous. There was also a discussion out there, is there ever going to be a way to actually save block patterns from the editor? So you design a certain way&#8230; Like you do with reusable blocks, that you can just highlight it, make reusable block, and then it&#8217;s available for every other editor. Can you also do this for block patterns? Is that on the roadmap?</p>



<p><em>Matias Ventura</em>: Yeah, we actually had it in one of the plugin releases. I don&#8217;t know if you remember, but I think Ryad had done it, I think, right around the time of 5.0. You were able to both save reusable blocks and save patterns. You used the same mechanism, it was just, when you inserted them it would just do different things. Because it&#8217;s essentially the same, like you can insert a reusable blog and detach it from that sort of reusable instance and you get the pattern. So that was just the shortcut for that.</p>



<p>I think the tricky thing was that it was not clear when were you saving one thing or the other. And so it was more of a UX problem than a technical one. And I think that&#8217;s still the case. Now, that we have a proper&#8230; Because I think at the time we didn&#8217;t have patterns as a dedicated UI. So now that we have a dedicated UI for patterns, those concepts can make more sense. So it&#8217;s something to explore.</p>



<p>But I think we still need to do some work on this. Again, what does a pattern represent for sections? If you can say that a pattern has sort of like a semantic value, that it belongs to a header or a footer and so on. How does the directory react to that? Because we don&#8217;t have that layer of categorization in the directory right now that represents areas of the site. I think we need to do some work there to surface exactly what are the needs, what are the details? But yeah, it&#8217;s definitely on the table.</p>



<p>I think another sort of connected piece to this is that patterns can also be super useful for creating pages. So that&#8217;s something, like an additional&#8230; Like pages can sit between the regular post editor and the site editor, in the sense that sometimes when you&#8217;re building a page, especially like a landing page or something, patterns can be better than just blocks. In some other cases you might want just like, I don&#8217;t know, a blank page, I just want to write. But it&#8217;s an interesting&#8230; Pages, I think, provide an interesting place to sort of connect the two experiences. Like an experience more focused on pattern or an experience more focused on blocks.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. And there has been almost immediately since the block editor came out, some of the plugins already provide kind of full page layouts that they have into it. So there&#8217;s quite a few things that will make it into core in a different way, probably. But&#8230; Yeah.</p>



<p>But I also see on the roadmap, there&#8217;s one thing, that is to use patterns also for transformations. So right now, when you add a pattern to a post, well, a page and it&#8217;s detached from it&#8217;s being a pattern. Yeah, kind of all the blocks are&#8230; Yeah. But if you want to replace a block pattern, you need to have it be together so you can replace the content immediately and all kind of things. Yeah.&nbsp;</p>



<p><em>Matias Ventura</em>: Yeah. And this is also crucial for this. Like when we&#8217;re talking about the header area, that&#8217;s a very clear case where it should be possible to say, &#8220;Oh, I like this theme, but I want to choose a different pattern for the header.&#8221; And that pattern might come from the theme itself, or it might from the directory, or it might be something that a user created. But that experience needs to be possible.</p>



<p>For headers, it&#8217;s somewhat easier because the blocks, even the inner blocks are semantics. You might have a site title, navigation block, tagline, and so on, site logo. And these blocks are transferable between any&#8230; Like they just deal with data outside a content.</p>



<p>For generic patterns that are just like a combination of blocks, we had some explorations and we need to continue around like how can you map certain&#8230; Like, say you have a pattern with an image and you have&#8230; You could have multiple patterns that combine text and images, so you can transfer some of the content and see how it looks on different places. But the fact that you don&#8217;t have necessarily a container for the pattern makes it, in some cases, more difficult. You need patterns that are either already by default used in a group or stuff like that, so that you can manipulate them that way.</p>



<p>But I think it&#8217;d be interesting to consider this addition of like sections. So that you can treat the section and say, &#8220;Okay, transform all these blocks on this section to this other pattern.&#8221; And sometimes it might not be a one-to-one mapping. Like maybe there are more blocks in one pattern than another. And those things need to be accounted for. But at the very least we should&#8230; We have some stuff there that already works for headers and footers, but we need to really expand these and connect it with the directory and then see how that can of work on&#8230; Because eventually it&#8217;d be nice if you can just lay a couple paragraph, add an image, and then you say, &#8220;Oh, I really want to display this in a more interesting way.&#8221; That you can just multi-select the paragraphs and the image, and you will get options of patterns that use, at the very least, these amount of elements. Like these different part of an image but laid out in a different way. And that is where patterns can also be a transform utility.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. It could also open up a lot of possibilities for plugins and themes, to actually offer all these different variations of things. At the fly, a user doesn&#8217;t have to know what they want.</p>



<p><em>Matias Ventura</em>: Yeah, exactly.</p>



<p><em>Birgit Pauli-Haack</em>: &#8230; before they scroll the patterns. Yeah, exactly. Yeah.</p>



<p><em>Matias Ventura</em>: Which is really the limitation. If you think about it, that&#8217;s the limitation right now with pattern, is that you need to think about before you added your content. You need to say, &#8220;Okay, I want to try this layout.&#8221; And then you write your content. Which is fine in some cases, but in others you would be like, &#8220;Oh, I just want to get this content out, this image out. And now I want this to be a pattern.&#8221; So that should also be a possibility.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. That&#8217;s how I produce my pages, that&#8230; So this is my content, how can I make it snazzy and all that? Yeah. Excellent.</p>



<p><em>Grzegorz Ziolkowski</em>: It&#8217;s interesting that we are talking all those ideas. Like they are crazy comparing to classic themes, wherein you go to the theme directory and you check some tags. Like I want to have one sidebar, like one column, and the content inside and maybe some other characteristic, but that&#8217;s it.</p>



<p>And basically you just get a huge list of themes and you need to go one-by-one and like activate, check how it works. And here, it&#8217;s there. And on every template you can have like parts of different themes combined which have&#8230; Because of style variations, you can have unified look and feel. It&#8217;s like there are so many possibilities that that opens, which is like the work I think for the next 10 years, at least, just to explore all that.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah.</p>



<p><em>Matias Ventura</em>: Yeah. I think, in&#8230;</p>



<p><em>Birgit Pauli-Haack</em>: Oh, sorry. Go ahead.</p>



<p><em>Matias Ventura</em>: No. Go ahead. Go ahead.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. So if your listeners kind of&#8230; The mind is blown. Let&#8217;s hear what Matias has to say about the decoupling of templates from specific themes. That opens it up really wide.</p>



<p><em>Matias Ventura</em>: Yeah. I think it&#8217;s really the, sort of in a way, I think the topic of 6.0 is going to be to unleash some of these restrictions that for now are like self-imposed. Right now when you switch a block themes, your template parts and all of those things don&#8217;t carry over, your global styles don&#8217;t carry over. This is just like an artificial restriction. Like there&#8217;s no&#8230; Like it&#8217;s completely viable. And it&#8217;s part of the goal that those things do transfer, if you want them to. Like if you want to switch things but retain your header, like switch things but keep your global styles, or like try different layouts but keep your styles, or just change your styles. Like there&#8217;s many combinations there that should be possible.</p>



<p>So it&#8217;s really about unrestricting these things and decoupling the templates from the theme. Like you can combine from different themes. You can create your own and transfer. Maybe you really like how the block archives from a theme look and you want to just install that and keep everything the same. All of those possibilities are really there. Like right there.</p>



<p>We need to formalize the user experience around it and remove these restrictions that are really, right now, are keeping things more familiar to how things used to work. But part of the cool thing is that, now&#8230; The way I see it is that, all of these themes, all of these types of themes are compatible with each other. Like the theme JSON, just works in any of these themes. The templates are just blocks, they can be combined, they can be composed. So that part of compatibility is really what I think is going to be the biggest area of exploration that we have ahead.</p>



<p><em>Birgit Pauli-Haack</em>: And always keep in mind, don&#8217;t get scared that all will be locked down again after it&#8217;s all over.</p>



<p>Yeah. So you had also quite a few things that you envision for the editor in 6.0. What stands out for you? Some of them are really pushing the experience further, but are there any, I say, new things? Or what stands out for you?</p>



<p><em>Matias Ventura</em>: Well, I think like for the&#8230; There&#8217;s a lot of work that needs to be done to improve the template browsing experience. Even there, there are some restrictions that we impose that are artificial. Like when you create a new template, you can choose from an archive, single page. You have a few options. But you don&#8217;t have all of the options that WordPress should allow. You should be able to create, I don&#8217;t know, a specific category page for a specific category that you publish, like your travel category.</p>



<p>All of those things are, again, at the tip, it&#8217;s right there to do, we just are not exposing it properly. And we need to work on that to make that more viable, because that&#8217;s also something that unleashes a lot of that kind of power. Like maybe, you just install a theme and you say, &#8220;I want to modify a bit like my category page for this specific category.&#8221; You can do that right in the interface, or for a specific post type or for whatever it is. That&#8217;s something that needs to happen at the editor UI level.</p>



<p>There&#8217;s also some work around the three main ingredients of the site editor, like the global styles, the templates and the navigation. Those three elements, there&#8217;s some design explorations about how to better communicate this sort of hierarchy. That these are important and you can access these in this way.</p>



<p>For the navigation it&#8217;s important because you might have like a collapse navigation behind like a hamburger menu or whatever. And you shouldn&#8217;t need all these clicks to get to your navigation. There should be a way to just see the site structure without having to interact with a template that has a visible site structure. You might even have a site that has a hidden site structure. Like it doesn&#8217;t render a menu, but it has subpages and permalinks and so on. So you still need access to those kind of things. So that&#8217;s part of the editor work that needs to happen.</p>



<p>There&#8217;s also some that didn&#8217;t quite make it to 5.9, but it&#8217;s already in the plugin now, the style variations. Being able to switch style variations on the fly, that&#8217;s going to be really powerful. Especially right now, again, we&#8217;re restricting what you see to what is bundled with a theme. But there&#8217;s no need to do that. You could just go there and open like a style directory, where you see styles from all of the themes and you pick whatever you like. And it doesn&#8217;t have to be bundled with the theme, you can just access that from the directories.</p>



<p>So a lot of that work on the editor itself is essentially like managing how we open up some of these options and how we manage the access to them.</p>



<p><em>Birgit Pauli-Haack</em>: Excellent. Excellent. Now, in your roadmap document, there are also a few things that are&#8230; Regarding for blocks. Blocks were, it&#8217;s kind of the first phase of things, but they always have been evolving. Are there anything that you like to point out and where you want to talk about?</p>



<p><em>Matias Ventura</em>: Yeah. Yeah. I think in a way, I think we got to a point&#8230; The cool thing about, also, the 5.9 release is that now blocks are everywhere. So any improvements we do to blocks are just improving things everywhere. So any improvements we do to the UI, to the interactions, to all the things that&#8230; Some of them are still not quite there, we need better interactions across the board, but those benefits just compound because they just affect everything now. The investment we do on blocks it really scales really well, I think to the&#8230;</p>



<p>So I&#8217;m interested in the&#8230; Obviously, we need to continue to improve the navigation block, which is one of the most complex in terms of interactions. And we&#8217;re going to get a lot of feedback now that it&#8217;s out there, on the things that are confusing or too hard or tricky to do. We need to improve how plugins interact and extend this.</p>



<p>Again, to use the example of WooCommerce, if you want to add a cart, how does that interact with the block? How do you show it there? Like WooCommerce is already doing stuff, but it&#8217;s a bit idiosyncratic. We don&#8217;t have proper APIs really exposed for people. Like we have the APIs, but they might not be the most ergonomic. So we need to think about those things. How can a plugin target a specific area of a template to add a specific block?</p>



<p>And then what happens if the user moves it elsewhere? Which is part of the interesting thing, like now users are not constrained to where a plugin decided to show. Like sharing buttons. Maybe the user wants to move sharing buttons to the top, or to the bottom, or below the comment stream or wherever it is, they are able to do that. But the plugin also needs to be able to give like default specific location. All of those things are related to the blocks and the block&#8217;s APIs that we need to explore.</p>



<p>And then I&#8217;m also interested in like some basics. Like we have some restrictions on quotes, on lists where you cannot nest like more than paragraph blocks inside. But it would be nice to just get rid of those, like improve them. We have the signs for the table block also that are really nice that we need to get through. We have a bunch of blocks being developed for handling comments, as well like in themes, like how to lay out the comment stream and so on.</p>



<p>So it&#8217;s really continuing to improve everything around blocks. I think, maybe one really important highlight is probably allowing the feature image to be used in like covers.</p>



<p><em>Birgit Pauli-Haack</em>: Yes.</p>



<p><em>Matias Ventura</em>: That&#8217;s one that we really need to get to. Like we wanted to do it in a way that was very&#8230; That allow not just the cover block, but essentially like media and text or groups or anything else that you could deal with. And also third-party blocks. If a third-party block wants to say, &#8220;I want the user to be able to use the feature image here.&#8221;</p>



<p>But trying to solve that in a very generic way, I think is also blocking. Not having it on covers, which is really, like it would be really powerful today. So maybe we should just need to make it available on covers while we figure out how to make it available everywhere.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. The hero image kind of design for a post and pages is certainly something that had a great majority of themes and that is still not available. Yeah, I also like the media and text for post query loops, yeah, where you have the featured image on the left side and then the text, the headline or something on the right side. I know that, for instance, the New York Times actually has that pattern. Yeah.&nbsp;</p>



<p><em>Matias Ventura</em>: Yeah. I think yeah. I think that one in a way is a little less pressing, because you can achieve essentially a similar layout to media and text with columns, so you can just use the feature image block there. But it&#8217;d be nice if it just worked with, it&#8217;s simpler to get the media and text.</p>



<p>You can also replicate media and text with patterns. So there can be a lot of like post query loop patterns that are just about that, so it&#8217;s a bit more flexible. But the cover is really like, you cannot replicate it without….</p>



<p><em>Birgit Pauli-Haack</em>: That&#8217;s right.</p>



<p><em>Matias Ventura</em>: So that&#8217;s probably like the biggest quality of life improvement if we can do that.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. What&#8217;s still missing in 5.9 is&#8230; And there were some attempts to get it in, but then taking out as the typography for blocks and selections. Was that kind of stifled when the release team kind of decided to take the webphone’s API out from getting into core?</p>



<p><em>Matias Ventura</em>: Yeah. So there are a few pieces. Like the typography tools did make it into 5.9. The typography tools are all there and they&#8217;re connected within JSON and so on.</p>



<p>We don&#8217;t have the Webphone&#8217;s API. So to add like new phone, families and local files and so on, that&#8217;s going to be a big part of 6.0. And also the other thing that we didn&#8217;t quite get to is, like better handling for responsive phones, essentially. Being able to pick a size, but allow it to be modified properly in the different context. A theme can do that with functions and so on, but the end user cannot. So integrating that better into the interface is part of the exploration.</p>



<p>The tricky thing there is to not be overwhelming again. They can be really&#8230; A lot of these concepts can really be difficult to process, to interpret them, to understand them. So the more we can just make it work by default. And then if you really know what you&#8217;re doing, you can dive into more specific options. But otherwise, just trying to make it work.</p>



<p>This is also super important for patterns because patterns can be inserted in different context. Maybe you insert a pattern in a narrow column. Like what happens there? We have some allowances there to say, what is the desired width of a pattern, so that we can filter them out. But still, a pattern might be the sign&#8230; It needs to be the sign in a flexible context because that&#8217;s the nature of the web. And a pattern cannot supply custom CSS, so it cannot supply media queries or anything to handle that.</p>



<p>Also, media queries wouldn&#8217;t work there because it doesn&#8217;t depend on the view. It going to depend on the container. Maybe content queries could work, but what we&#8217;re trying to do is to embrace more of these intrinsic web design principles, where you just define the properties of the container, how it should cascade, how it should be modified by the&#8230; And that also applies to phones. And now CSS has those tools so we just need to find ways to incorporate them in ways that make sense, like good defaults. All of that is going to be very important.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. Responsiveness is still something that&#8217;s kind of missing throughout the whole blog editor universe. But I see that that is definitely a focus also for 6.0.</p>



<p><em>Matias Ventura</em>: Yeah. I wouldn&#8217;t say it&#8217;s missing. I would say that we have like the very early steps towards it.</p>



<p><em>Birgit Pauli-Haack</em>: Sorry.</p>



<p><em>Matias Ventura</em>: &#8230; we do have like&#8230; No, because the column block does handle. Like when you collapse it, it collapses like the&#8230; I saw there was a video that a designer shared with like, just building a theme from scratch. And what they build just work by default on mobile.</p>



<p>What you don&#8217;t have is like really granular control over things. And that&#8217;s what we, it would be nice to expand. But at the very least, things flow generally well, if you&#8217;re using the row container. All of those flex containers just generally work. The same with the navigation and collapsing into the hamburger menu or giving you those kinds of options. I think there&#8217;s going to be a in part, little work of exploring when some of these tools need to exist on a specific block, like the navigation. And when it&#8217;s a property of the containers and more broadly that, those kind of cases. Yeah, and I think always, eventually you always have the route of just adding your own CSS and media queries. That&#8217;s also important to highlight. That&#8217;s not locked away. A thing can always add extra CSS if they need to.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah, definitely. Definitely.</p>



<p><em>Matias Ventura</em>: It&#8217;s always an option.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. But you have that not only the separation between users and developers now, you also have the separation between a user and a designer who wants to use the site editor without touching code. So there is that granular &#8230; So responsiveness needs to happen everywhere for the user, but when they change something, it needs to happen also. So there was one bug that exchanged or illustrates that, is the featured image and the query block is all responsive, but when you change the size of the feature image, it goes outside the narrow container. Yeah. So, but I can see a user just change the size of it. But it&#8217;s not, it needs to be caught, so it still is responsive when it&#8217;s even smaller.&nbsp;</p>



<p><em>Matias Ventura</em>: Yeah, I think that&#8217;s a great example of how we need to make blocks really resilient to these changes and then sometimes wanting control over how these things flow, is because the blocks have bugs. And if we fix those bugs, the need goes away. So that&#8217;s a good way to say, &#8220;Okay, we don&#8217;t overwhelm people with options. We just fix the bugs.&#8221; And most of the time things should work. But it&#8217;s a great point that also, again, the audiences are really expanding. Now there&#8217;s this new &#8230; Designers can now design a full theme using the site editor. That&#8217;s a new use case for WordPress that we need to &#8230; And again, these are users, just as an end user that is just using a theme is a user. There are different levels of users and builders.</p>



<p>And I think that&#8217;s the beauty of WordPress as well, is that maybe you start as a user, but you start using the tool and you have a good eye and you develop and you have some design background. And then you start doing that for others. And so you become a designer of block themes because the tools allow you to ramp up slowly. I think there&#8217;s a lot of gaps there, because you can go from just a user that likes to write on their site, to someone that&#8217;s creating blocks. There&#8217;s a lot of things in between and a lot of ramps up that people can take. I think that was a cool thing about the query block, which is an advanced block into like &#8230; You need to understand again, what is a query, what is being queried, what are these objects and posts and so on? But it can also be a ramping point to understanding how the software works, which is also part of the mission of WordPress which is given not just the tools, but the access to the software, people.</p>



<p>And that means that understanding how things work, being exposed to some of these internals, sometimes just in the UI, like the query block, you don&#8217;t need to dive into code to start understanding that. But if you play with a query block and then you see a PHP query, there is going to be a degree of familiarity with how things work, what it does, that is going to connect some dots to people. And it can become a ramping point for someone that wants to become a developer or wants to become a designer and so on. So I&#8217;m really excited about those sort of gaps in between. I think we need to do a better job at providing, ensuring that there&#8217;s no &#8230; That there are actually ramps and not cliffs. So if you start, want to go from creating patterns in the UI to creating a block, right now, that gap is too big. You need to go from using an intuitive tool, just with a graphic UI, to now opening developer tools and installing packages and stuff that you don&#8217;t really &#8230; The gap is too big.</p>



<p>But I think we can think about ways that, &#8220;Okay, what happens if you start using the HTML editor first as a way to define how a block works? What happens if you can export that code that you&#8217;re editing into a bundle of files. And then you can see your JavaScript files for the first time from what you did, and you start connecting some of the dots?&#8221; I think there&#8217;s a lot of possibilities there even for education and learning and teaching.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. Same thing applies to theme JSON. How easy can you change just one thing? And you see it immediately. There is no build, there&#8217;s a build step, nothing. But you just add the text point in the text editor of the theme, JSON, and you see it immediately, if you change your color or an underline or a font. Yeah. So I really like that as well. All right.</p>



<p><em>Grzegorz Ziolkowski</em>: So in fact, there is a build step, but it&#8217;s invisible for the end user, because it happens on the server. But that&#8217;s the goal. This is what Matias is talking about. So, that&#8217;s the thing that needs to happen. It&#8217;s still there, but it&#8217;s hidden and you can unwrap it as soon as you progress with your learning of programming concepts.</p>



<p><em>Matias Ventura</em>: Yeah. And that&#8217;s also why the exporting is also so important. You should be able to export your global style settings and see that theme, JSON. Maybe it feels a bit alien or you don&#8217;t understand what&#8217;s going on, but it&#8217;s there. You can do that. You can introspect the internals of how the software is working. And I think that&#8217;s important to give that visibility. So ore ways to export and also to import, transfer things to other sites and so on. All of that I think is important.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. And some of the things are already exportable and some of them will come in 6.0. And I think that&#8217;s one. So yeah, I&#8217;m really excited about the next version, which I see is scheduled for something like end of May?&nbsp;</p>



<p><em>Matias Ventura</em>: I think so. Yeah.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. Two months before is beta. So it&#8217;s going to be in April pretty much. Yeah. Beginning of April, we probably know what&#8217;s going to come in 6.0, and I&#8217;m really excited about that. I know that quite a few pieces have already been finished or are not finished by any &#8230; Nothing is ever finished. But it will be, the first version is already in the latest plugin. So if there&#8217;s anything else you want to add to 6.0 topic or you, Grzegorz, I would want to move to the plugin release so we can go through the change log. Do you have any &#8230; Yeah. Okay, so let&#8217;s get started.</p>



<p><em>Matias Ventura</em>: Yeah. I think the only thing that I would add is that this now it&#8217;s an interesting part where we need to listen to a lot of the feedback. And that kind of feedback would come in many different ways like from hosts, from agencies. All of that needs to be &#8230; We&#8217;ve been developing this for a while, but the reach again, the Gutenberg plugin I think is around 300,000 installations, which pales in comparison to how many times was 5.9 downloaded, I don&#8217;t know, five minutes after the release. So now we should be getting a lot of feedback that we need to process and incorporate into 6.0. So I think that&#8217;s the other understated thing from the preliminary roadmap, is that it is going to be influenced a lot by this feedback.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. Is just looking at the stats? It looked like it.</p>



<p><em>Grzegorz Ziolkowski</em>: Oh, yeah.</p>



<p><em>Birgit Pauli-Haac</em>k: First of all encounters.</p>



<p>Yes, 5.9 has been downloaded now 16 million times. Yeah. So it&#8217;s in a lot of people&#8217;s hands, if they want to explore it. Of course, nothing happens when they don&#8217;t have a block theme. Enable it right now. All right.</p>



<p><em>Grzegorz Ziolkowski</em>: For WordPress, just to give the reference for WordPress 5.8, it was over 100 million downloads.</p>



<p><em>Birgit Pauli-Haack</em>: Yes.</p>



<p><em>Grzegorz Ziolkowski</em>: And it&#8217;s only for the use case, when someone goes to the website and clicks the download button, because you can also get installation from the host or whatever else, which isn&#8217;t counted.</p>



<p><em>Matias Ventura</em>: I think it should count how to install. I think how to update.</p>



<p><em>Birgit Pauli-Haack</em>: Well, it counts to downloads. So if you have a client, if you have an update button on your website, 6.0 is out, click here to update, that&#8217;s the download. That&#8217;s also the WPCLI downloads that happen and updates, or when you have a manager like Main WP or Managed WP or Google, GoDaddy&#8217;s managed tools, they download it all to your site and those downloads are counted. Yeah. I don&#8217;t know what the hosts do if they just deploy it from their own sites, from their local CDNs. But yeah, we can find out.</p>



<p><em>Matias Ventura</em>: I think it depends.</p>



<p><em>Birgit Pauli-Haack</em>: 108 million downloads was really big. Yeah.&nbsp;</p>



<h3 id="what-s-released-gutenberg-12-5"><strong>What’s Released &#8211; Gutenberg 12.5</strong></h3>



<p>All right, so this week&#8217;s release was organized by Fabian Kagy and who was in our last episode as a guest. And he also prepared the release notes on the make blog. So Grzegorz, do you want to lead us into what&#8217;s new in Gutenberg 12.5?</p>



<p><em>Grzegorz Ziolkowski</em>: 12.5. Yeah, so we already mentioned some of those things like Mattias talked about, switching global style variation. So that&#8217;s the new feature. So maybe Mattias, you could just explain was why it&#8217;s so huge.</p>



<p><em>Matias Ventura</em>: I think it&#8217;s a pretty packed release in terms of features, going back into the pace of especially after a couple releases, being more about stabilizing things for 5.9. The style switcher is probably the most exciting, the ability to just on the fly, change theme, JSON. And again, if you think about all the things that theme JSON can do, because it&#8217;s not just colors and fonts, it&#8217;s also each aspect of how a blog is displayed. You can change how quotes look, how different blocks look and package that into these theme JSONs. So changing theme JSON can be as drastic is changing a full theme, but it&#8217;s just a quick click away. You don&#8217;t need to install or download anything. It&#8217;s just a theme JSON file. And this is just the initial UI. I think it&#8217;s important to get it there, but it&#8217;s going to be more exciting when we start sharing things between themes, because it will also force to establish some more, either conventions or good practices for how we name some presets or colors, which have been ongoing conversations. I think we need to start establishing some of those.</p>



<p><em>Birgit Pauli-Haack</em>: So how would a theme developer enable his theme to switch out variations?</p>



<p><em>Matias Ventura</em>: I think right now, you add a folder called Styles and you put your theme, JSON files inside that folder.</p>



<p><em>Birgit Pauli-Haack</em>: So you have one theme, JSON, the main one in the root directory and then you have Styles folder and have multiple theme JSONs that you name differently, so they&#8217;re not already &#8230; Okay.</p>



<p><em>Grzegorz Ziolkowski</em>: Yeah, everything magically happens behind the scenes. The user goes to the editor site, editor page and then just goes to where the global stars are in the sidebar. And next to the currently selective variation, you will have link saying other variations. You could select that and you can just preview all other variations and pick with the one that fits better for you.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. Kael had this in some of his videos, he that, how 2022 changes dramatically when it just changed the style out.</p>



<p><em>Matias Ventura</em>: Yeah. We have it in the main video for 5.9. It&#8217;s a tease towards the next &#8230; The variations exist. I think they are available somewhere, but you cannot switch between them with the UI right now. If you install the plugin, you will be able to do that. I think the aim is to have the bundle with 2022, these variations, so that you can &#8230; And in 6.0 just with the same theme, you can get these very different looks of it. And it&#8217;d be nice if as a community in general, we need to start thinking about how to bring this into the theme showcase and directory experience, because you should be able to browse the directory and say like, &#8220;Oh, this theme, but with these other styles&#8221;, or be able to browse that and get that dynamic impression of how everything can change. We need to really think about the experience around that.</p>



<p><em>Grzegorz Ziolkowski</em>: Yeah. You use, preview the theme inside the directory and just applies everything on the fly. So you see how this site looks with this theme active. That would be great.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah.</p>



<p><em>Matias Ventura</em>: It&#8217;s also cool, even the other way, because you can imagine sending your theme JSON, so that you can preview patterns with your styles. You can browse the pattern directory using your own site styles so that you already know how it&#8217;s going to look, because the theme JSON is really easy to transport. You&#8217;re not installing or executing any code.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. The theme directory, Munir Kumal actually, has a few different ways to showcase the theme directory on his Gutenberg hub. And I think there&#8217;s a lot more discussion to be happening to actually enable that what you had just said, about the styles to the changing. So yeah, what&#8217;s also now in 12.5 is that the code editor is now also available for the site editor. So if you want to tweak something on the code or some attribute or something like that, you could now use the code editor in the site editor as well. That also is in the &#8230; We also mentioned the featured image in the query loop, but the vision that we had with the cover block, it&#8217;s not yet there, but it&#8217;s now, at least the size, the actual, so the controls are now the same for the placeholder, as well as the featured image. And there&#8217;s also now a size selector in the sidebar that was missing before.</p>



<p><em>Matias Ventura</em>: Yeah. I think that exposes a lot of the generated thumbnails that you might have for a feature image, which was again, another feature gap that is being overcome. And this is really the spirit of the focus on blocks, is that again, we can improve shows the feature image, and it&#8217;s going to improve all the themes, that are using this block. And so that&#8217;s really when you start seeing these compound effects, of just improving these block, just improves all the themes.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah, also has the danger that it also breaks themes.</p>



<p><em>Matias Ventura</em>: Oh yeah.</p>



<p><em>Birgit Pauli-Haack</em>:&nbsp; But yeah, so I don&#8217;t want to belabor that right now.</p>



<p><em>Grzegorz Ziolkowski</em>: In general media, it was very tricky in context of the query loop, also how there&#8217;s authors, because there also could be something missing, so we need to have a fault for that. So I&#8217;m great that this is worked on, and finally there is a workaround when there&#8217;s no data. Yeah. I guess for features that&#8217;s basically that, and we also have a list of 14 enhancements.</p>



<h3 id="enhancements"><strong>Enhancements</strong></h3>



<p><em>Birgit Pauli-Haack</em>: Well, there are more. They&#8217;re only block library.&nbsp;</p>



<p>Grzegorz Ziolkowski: Only block library as usual. For the query loop, there were multiple other changes. So now this is really exciting that you have better filtering options. So before we could also pick one author, now we can select a few of them, which gives you more options. And the other thing is you can use taxonomy. So that&#8217;s even powerful because taxonomy is that everyone has a lot of them on their site, and they just can narrow down the results to some of them and combination of them now.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. You can have multiple sections on your website and just show particular categories, and then style those images. Yeah. We mentioned that two weeks ago that it&#8217;s in the works. So I&#8217;m thrilled that these enhancements now are in the plugin and there were also some transform &#8230; Now you can transform the core site logo and the core site title, transform it. So if you have in a header, you use either one of them and then you can just transform the other one. You don&#8217;t have to delete them.</p>



<p><em>Grzegorz Ziolkowski</em>: This one is a bit controversial because it&#8217;s not a real transfer, because there are separate blocks and they have different data inside. However, the use case is pretty valid, because it helps you much quicker to craft your header.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah, it&#8217;s easier because there&#8217;s only one click away. If you want to do it just with blocks, you have to remove the older block and then you need to add another block. So it&#8217;s a lot more steps. So that&#8217;s why I think it&#8217;s a good thing. And now you also can have text labels on your hamburger menu or as the techies call it, the overlay menu. So you can point people to the hamburger menu and say, &#8220;Here is my menu&#8221;, because it seems to be still after, I don&#8217;t know, 15 years of mobile website, still a handicap, that people don&#8217;t know how to find the navigation of a site on a phone. All right, then the next thing that I see is the and selected states for the palette editor. And I tried to test this, but I think there is a need that the themes actually need to switch in, as opt into that, and also offer the switch between the two and the colors for that. Well, how does that work?</p>



<p><em>Matias Ventura</em>: I think this is just about the UI elements. They didn&#8217;t show you when you were hovering, more focusing. It&#8217;s not about changing the hover and focus.</p>



<p><em>Birgit Pauli-Haack</em>: Okay.</p>



<p><em>Matias Ventura</em>: I think it can be a bit misleading if you read the entry.</p>



<p><em>Grzegorz Ziolkowski</em>: Yeah. So the use case, when you have a blog that has not only text color balance, or background color, lean color, and there is &#8230; Can be now even more of them. And when you hover over it and there is this model or overlay popover maybe, and which allows you to change the color, in the past you have an indicator, which one you are editing, so you could get lost easily. And now it&#8217;s fixed and you have this hover effect and you know what you are doing.</p>



<p><em>Birgit Pauli-Haack</em>: All right. Yeah. I totally got it mixed up with the other feature that a lot of designers actually need hover space for the buttons and that&#8217;s not working it.</p>



<p><em>Matias Ventura</em>: Yeah.</p>



<p><em>Birgit Pauli-Haack</em>: All right. But that&#8217;s coming. Yeah. I saw a PR for that, I think. Yeah. All right. Well, I&#8217;m glad that this was changed. So we have the post block modal for the site on the post editor?</p>



<p><em>Matias Ventura</em>: Yeah. I think this is just improving a bit the display of the &#8230; When you open the editor and someone else is editing there and you get this, the takeover screen, it can now show you who is actually with the Gravatar and so on. It&#8217;s a nicer design of that.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah and the message also has changed. It actually tells you, &#8220;You&#8217;re not kicking them out and all their work is destroyed. Now telling you, &#8220;Yes, their content will be saved when you kick them out.&#8221;</p>



<p><em>Grzegorz Ziolkowski</em>: Yeah. That&#8217;s a temporary measure until we go to the phase three of modern work, which is collaborate everything.</p>



<p><em>Matias Ventura</em>: Yes.</p>



<p><em>Birgit Pauli-Haack</em>: That a bit of way though. So I&#8217;m glad for the current fix or &#8230;</p>



<p><em>Matias Ventura</em>: We&#8217;re all looking forward to that, like you said.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah.</p>



<p><em>Matias Ventura</em>: It&#8217;d be nice to wrap up the phase two and start getting into those.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. But you&#8217;re not done. Nothing is ever done. So there were some changes to the buttons block? It preserves the styling of the adjacent button when you add a new one. This is actually a nice interface to….</p>



<p><em>Matias Ventura</em>: Yeah that&#8217;s really nice. Before, if you had these, I don&#8217;t know, a list of buttons and you had customized them all with gradients and border raise or whatever it is, and you would insert, wanted to add a new item, it would just look like the default, so you need to do that work all over again. Now it just inherits from the neighbor. So it really speeds up. And it&#8217;s a nice again, quality of life improvement there. It&#8217;d be nice I think, if it also points out that we need better tools for modifying how all the buttons look at the same time, in a group of buttons. You can, maybe it&#8217;s through multi selection or by selecting the wrapper, or even by selecting a single button and having an apply to all thing. We need to explore some options there too.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. Good thinking. Yes, and what I consider a quality of life change as well is the identifying the side, front page, in the link UI search results for the navigation block. So you see which one is the homepage because not all the pages are &#8230; Yeah, from general settings, we can switch to a page as a front page, but in the list, they might have a different name. You don&#8217;t recognize that. So this is really nice to have.</p>



<p><em>Matias Ventura</em>: Yeah, and the cool thing is that it just works on all the link UI. So it should work on buttons, on inline links, on the navigation block and so on.</p>



<p><em>Grzegorz Ziolkowski</em>: Yeah. And there&#8217;s also, in addition to the site editor&#8230; Actually, this feature existed before, for the post editor, which is copy all content, which is added to the menu that can be opened in the header on the top right side. It just takes all the content and you can apply, paste it to another&#8230; Tap, just copy to other site or whatever. You can also save it to HTML file and just start creating your own template and theme-based on templates. Some of those features that we discussed, they are possible. You just need to use low-level tools that are out there. In fact, you could do that, also by using select all keyboard shortcut and selecting all blocks and just using copy shortcut, which is common-c. That would also work. It&#8217;s just more convenient way of doing that.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah. But for that, what you said with the control + a, and control + c and b, wouldn&#8217;t you be in the code editor to actually do this?</p>



<p><em>Grzegorz Ziolkowski</em>: No, not necessarily. No, yeah. But you just need to have one of the blocks selected, so the selection can be expanded on that.</p>



<p><em>Matias Ventura</em>: The first common-a selects the whole block. And multiple common-as expand the selection.</p>



<p><em>Grzegorz Ziolkowski</em>: Yeah, good point.&nbsp;</p>



<p><em>Matias Ventura</em>: But it&#8217;s a good point that the discoverability of these things is not always great. So I think there&#8217;s, it would be nice if the first time you press control + a, there was a snack bar notification or something at the bottom that says, you can select all, even an actual link that allows you to select all by clicking the UI, or that tells you if you press more common-a it will select all. The same with copy, we have the&#8230; If you just have the cursor on a block and you press control + c, it will show up, the entire block has been copied, but there could be also an action there in that notification that says, I want to copy all. Because that&#8217;s, it can be a more contextual way to surface that copy all tool that otherwise people might not ever discover in the ellipsis menu.</p>



<p><em>Birgit Pauli-Haack</em>: Good point.</p>



<p><em>Grzegorz Ziolkowski</em>: We need some sort of gamification system. Once you unlock all of those features, you just get some badges or something like that. So you know that there are some hidden gems you still need to discover.</p>



<p><em>Birgit Pauli-Haack</em>: Absolutely. If I don&#8217;t know that there was a copy all content, I think there are a few people out there who also didn&#8217;t know that, but I can&#8230; That&#8217;s a good point with&#8230; Gamification sounds a little buzzword-y, but it&#8217;s have context sensitive additional ideas presented. I think having a standardized way to do this before anything happens in that way would be really helpful because as soon as is extensible, some other plugin developer might get some idea to put some notes in there and they definitely need to be&#8230;</p>



<p><em>Matias Ventura</em>: It&#8217;s also related to the tips system that we have. We had this rotating set of tips that used to show in the inserter. Now I think we have the&#8230; Because the site editor now has a loading stage and it takes a bit of time. It&#8217;s a good place to show some of these tips, while you&#8217;re waiting for it to load it can tell you, did you know that you can copy all content on this? Because you&#8217;re forced to be staring at that screen in a way, and it can be a good place to rotate some of these tips.</p>



<p><em>Grzegorz Ziolkowski</em>: And I&#8217;m also convinced that it&#8217;s a good moment to teach people how to use software because they&#8217;re frustrated, right?</p>



<p><em>Matias Ventura</em>: That&#8217;s what games do. And it seems to be working pretty well.</p>



<p><em>Birgit Pauli-Haack</em>: But that&#8217;s also some software does. When there&#8217;s something going on, it&#8217;s like, do this, do this, so you can do this.&nbsp;</p>



<p><em>Matias Ventura</em>: We have the tip for the slash inserter, because otherwise it&#8217;s very, also, hard to discover, but that&#8217;s also a good one. And there were many more like that you can press space to indent, a list if you have the cursor at the beginning, those kind of things that are not necessarily obvious.</p>



<p><em>Birgit Pauli-Haack</em>: I get a lot of&#8230; I do this on Twitter, I think every two months or something like that, somebody tweets, oh, I hate it that I can&#8217;t do control + h2 or something like that to get a header in. It&#8217;s that, and recently there was one person who has a process where they have to change, coming over from Google Docs, they have to change all the headers, 60 of them into h + 3s. And he was going in there and doing that with the toolbar, and I showed him that it just put the cursor on the front of the line and hit three pound signs and space, and then it&#8217;s already a&#8230; So he doesn&#8217;t have to select anything, so these are really cool tools. Yeah, Greg, you could have used some of that teaching moments for the create block scripts when they were waiting to download the node modules, but you took it away because now it&#8217;s only one minute and 30 seconds to get your block created without downloading all the scripts and files. It&#8217;s really cool. Just pointing that out. All right. What&#8217;s next?</p>



<p><em>Grzegorz Ziolkowski</em>: So there is one interesting feature, for the color and the panel that has it. Now when you pick a color, you can also apply, it&#8217;s very technical name, alpha channel, which translates to that you can make parts of your blocks transparent. Which is pretty exciting because in the past, every block you would have to apply separate feature, like the cover block, for instance, you could make the background transparent, but now it&#8217;s just next to the color we are picking. So this one is really cool.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah, that&#8217;s exciting. Especially when you have something on top of the cover block and you want it a different color, but just to let it stand out a bit, with borders. That is really cool, I like that. There is also something for REST API? Grzegorz, can you explain that a bit?</p>



<p><em>Grzegorz Ziolkowski</em>: Yeah. There&#8217;s an API that runs behind the scenes for the new style variation features. So it&#8217;s nothing fast. It&#8217;s just something to make it work.</p>



<p><em>Birgit Pauli-Haack</em>: But that would also be something that a plugin could tap into later on if they wanted to change, here I have a plugin where you can make everything that you have in yellow, change all the variations. Okay. And the next one is that you now can tell the local environment wp-env the installed path, on the command line. That&#8217;s cool, otherwise, before, you had to navigate to that directory where you wanted to do that. I find that it&#8217;s really important that there is now the classic menus into the menu switcher, because that should probably be put back to 5.9 because that&#8217;s a missing piece for the navigation block in 5.9. And also they always allow accessing the post type for the navigation page, so they can actually change some of the navigation.&nbsp;</p>



<p><em>Grzegorz Ziolkowski</em>: But I guess you need to know the URL for the post type to get there, right? Because it&#8217;s not something that is exposed by default. I mean, you can do it yourself with a plugin.</p>



<p><em>Birgit Pauli-Haack</em>: Right. This wasn&#8217;t so much about the post type getting to the page. It was more like when you are an administrator, it would show you are not allowed to access that page. So it didn&#8217;t consider the administrator&#8217;s high privilege. Overlord position. So, even if you wanted to go there, you couldn&#8217;t do anything there.</p>



<h3 id="bug-fixes"><strong>Bug Fixes</strong></h3>



<p>Grzegorz Ziolkowski: I just wanted to mention that we are now in the bug fixes section. The last two items.</p>



<p>Birgit Pauli-Haack: Right. I skipped over that. But, yes?</p>



<p><em>Matias Ventura</em>: These are part of that gradual adoption, as well, is how does&#8230; Which, we still have work to do. How does a classic theme get some of these new benefits from the navigation editor, UI, and screens and so on. And this one is one of those, I think it&#8217;s related to accessing this page from a classic theme as well. Again, these are going fast in 5.9.1, but otherwise, bigger improvements are going to be landing on the plugin.</p>



<p><em>Birgit Pauli-Haack</em>: Of course. But because it&#8217;s a bug fixing section, those are things that were surfaced very early last&#8230; Between the release and now, and the fixed merge, so this is definitely going to be in 5.9.</p>



<p><em>Grzegorz Ziolkowski</em>: And, speaking of classic themes, there is also fixed dual-tone feature. So it works properly in those scenarios like we discussed when you just embed, for instance, header and footer, which is blog based. And then you can use those features and now everything should be correct.</p>



<p><em>Birgit Pauli-Haack</em>: Now that works again in classic theme. These were the bug fixes that stood out to me. Anything else you wanted to discuss there that needs to go into 5.9 or something else?</p>



<p><em>Grzegorz Ziolkowski</em>: No.</p>



<p><em>Birgit Pauli-Haack</em>: If you&#8217;re interested in all the bug fixes, definitely go to the release notes and the changelog and look through, if you find yours. There is also a project board and a Gutenberg repo on GitHub about what goes into WordPress 5.9. So you can see what is actually slated for the next release. Then we go and skip over the performance section and land at the documentation section.&nbsp;</p>



<h3 id="documentation"><strong>Documentation</strong></h3>



<p>And there have been quite a few updates especially to the glossary. Now there are a few new terms come with FSE. So we definitely need to update that. There&#8217;s also a new documentation page for the use look edit context hook. What is that about?</p>



<p><em>Grzegorz Ziolkowski</em>: I would have to check because there are so many hooks that are in a very similar way.</p>



<p><em>Birgit Pauli-Haack</em>: But if I look at that, it only adds a short description of what that hook actually does. So it&#8217;s in the documentation a little bit clearer.</p>



<p><em>Grzegorz Ziolkowski</em>: Yes. It wasn&#8217;t documented before. But it&#8217;s something that, you can use this hook when you are writing, edit implementation of your block. So you are a block developer, then you might want to use that hook when you have a nested component and you want to use the same properties that I exposed to the added function. So it&#8217;s basically nice shortcut.</p>



<p><em>Birgit Pauli-Haack</em>: Excellent. Thank you. And there&#8217;s also documentation now for the version 1 versus version 2 theme JSON documentation. There were multiple questions, the people that use the theme JSON version one after 5.8. What has changed for version 2? And now we have an answer to that. There is a document that experimental selector requires server side block registration.</p>



<p><em>Grzegorz Ziolkowski</em>: This one is tricky because, like everything that is prefaced by __experimental in general, shouldn&#8217;t be used or is discouraged for usage with third-party plugins. However, we know that people are doing that, so this is just clarification so people know what they&#8217;re doing. I know that people use very nice patterns that they just guard those features so they&#8217;re prepared for the case when this is renamed in the future, which is fine. And if someone wants to use it this way, it&#8217;s okay. But it is very important that many features for global size need to be required for the block to be registered on the server, because the processing requires many of those characteristics of the block. And for the theme.JSON, I want to just make it clear that it&#8217;s not that you necessarily need to be on version 2 already. It&#8217;s just, this documentation helps you to move if you or were adopting very early and you have version 1, it&#8217;s just all the names that you need to change to be on the latest one and to also take advantage of new features that are there.</p>



<p><em>Birgit Pauli-Haack</em>: Thank you. Yes. Just a little caveat that __experimental means no documentation, no backwards compatibility, use at your own risk. And it might break.</p>



<p><em>Grzegorz Ziolkowski</em>: And here we are, it&#8217;s documented.</p>



<p><em>Birgit Pauli-Haack</em>: Well, it&#8217;s only that if you use it, but yeah. It can change any moment now.</p>



<p><em>Matias Ventura</em>: It&#8217;s an interesting dynamic because we also want to get feedback on this, so it&#8217;s a dynamic of not encouraged to use, but also, the feedback is needed, otherwise it would never become a stable API.</p>



<p><em>Birgit Pauli-Haack</em>: Exactly. But I think we need to be much better in documenting things like that if you want it to be used. You get really into the trouble when you are not making them backwards compatible, but that is also, it&#8217;s a new feature, or a new thing. You don&#8217;t want the technical legacy of backwards compatibility attached to it before it&#8217;s even released to the user. So, it&#8217;s a conundrum. Yes. I agree with that. What&#8217;s next on our list is code quality.</p>



<h3 id="code-quality"><strong>Code Quality</strong></h3>



<p><em>Grzegorz Ziolkowski</em>: Yes. There were a couple of changes that&#8230; Escape, some of the properties it&#8217;s just for, more the hygiene, than there rather is something that was wrong. Some of them led to unexpected bugs. Some things were double escaped because of that. We always take care of this type of work and making sure that there&#8217;s, sometimes you prefer to be more secure than you need to be, just to ensure that we don&#8217;t have to patch that later.</p>



<p><em>Birgit Pauli-Haack</em>: Yeah, but one I want to point out was allow for HTML in the title, I think. That is from the beginning of WordPress. Some people put additional HTML wire plugin into the title and that was temporarily removed. So it&#8217;s coming back. So don&#8217;t fret, but I need to see if that&#8217;s going back into 5.9. 5.9.1, sorry.</p>



<p>All right. I don&#8217;t have anything else that I see there. We seem to be on the end of going through the changelog.&nbsp;</p>



<h3 id="what-s-in-active-development-or-discussed"><strong>What’s in Active Development or Discussed</strong></h3>



<p>In the section of what&#8217;s in active development, or discussed, I only have one thing that I want to point out, that is, I heard from a few designers that they&#8217;re missing the hover, focus, active states. And we talked about it. I have in the show notes, then the issue that Kjell Reigstad who is the designer on 2022 has created an issue where the discussion happens. So if you are really interested in that and you have some time go and chime in on the discussion, because that&#8217;s the next stage, how that is going to be handled. All right? Yeah.&nbsp;</p>



<p>So I think with that, we all have a wonderful show today with new things, back things, old things, new things. It&#8217;s really cool. And thank you so much for joining us Matias. I had a wonderful time with you discussing all the things. Is there anything that you wanted to say, a last word that you didn&#8217;t get in because we were all talking?</p>



<p><em>Matias Ventura</em>: No, not really. Just thank you very much for having me back after all these years, it&#8217;s fun to discuss these things, to both celebrate the work done so far and to look into the future, what&#8217;s coming. Just really happy that 5.9 shipped and that the work continues with 6.0.</p>



<p><em>Birgit Pauli-Haack</em>: Wonderful. And if people want to get in contact with you, what is the best way to do that?</p>



<p><em>Matias Ventura</em>: I&#8217;m usually hanging around slack. You could also find me on Twitter. I think it&#8217;s matias_ventura.</p>



<p><em>Birgit Pauli-Haack</em>: That&#8217;s right. That&#8217;s correct. Yeah. All right. Okay.</p>



<p><em>Matias Ventura</em>: Oh, and my website is just matiasventura.com.</p>



<p><em>Grzegorz Ziolkowski</em>: That&#8217;s a good one.</p>



<p><em>Birgit Pauli-Haack</em>: That&#8217;s a good one.</p>



<p><em>Matias Ventura</em>: Highly recommend it.</p>



<p><em>Birgit Pauli-Haack</em>: Yes. And if you always wondered, what is this Gutenberg thingy? There&#8217;s a wonderful post there. What&#8217;s the title of it? The Ship of Theseus?</p>



<p><em>Grzegorz Ziolkowski</em>: The Ship of Theseus.</p>



<p><em>Matias Ventura</em>: Oh, yeah. Yeah. The Ship of Theseus. Gutenberg or the Ship of Theseus, yeah.</p>



<p><em>Birgit Pauli-Haack</em>: Exactly. If you want to start there, you get a lot of ideas about the vision of it. All right. Before the end of the show, I wanted to point out that there is on Tuesday, the first Gutenberg developer hours on Meetup. And we have an expert panel that will answer all your development questions or know where to find them. So Fabian Kägy is going to be there. Nick Diego&#8217;s there as well as Tammie Lister to meet with the participants, we had to close it down a bit with 66 people are registered. We are not getting to all the questions, but we will. So there is a waiting list if you want to be registered there, but I also want to point out there&#8217;s a next one coming February 22nd. Also Tuesday 11:00 AM Eastern 1600 UTC. Put that on your calendar if you didn&#8217;t get in the Tuesday event.</p>



<p>As always, the show notes will be published on gutenbergtimes.com/podcast. And this is episode 60, six 0. If you have questions or suggestions or news you want us to include send them to <a href="mailto:changelog@gutenbergtimes.com">changelog@gutenbergtimes.com</a>. That&#8217;s <a href="mailto:changelog@guttenbergtimes.com">changelog@guttenbergtimes.com</a>. Thank you, Greg. Thank you, Matias. It was a great pleasure. Again, I&#8217;m so thrilled.</p>



<p><em>Matias Ventura</em>: Likewise.</p>



<p><em>Birgit Pauli-Haack</em>: It&#8217;s goodbye for me, dear listeners. And I&#8217;ll see you in two weeks, or I&#8217;ll hear with you, talk to you in two weeks.</p>



<p><em>Grzegorz Ziolkowski</em>: Thank you very much. That was a great show.</p>



<p><em>Birgit Pauli-Haack</em>: Thank you. Bye bye.</p>



<p><em>Matias Ventura</em>: Bye bye.</p>



<p> </p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sun, 06 Feb 2022 02:05:01 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:18:"Birgit Pauli-Haack";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:45;a:6:{s:4:"data";s:13:"
	
	
	
	
	
	
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:104:"Gutenberg Times: Locking down design and blocks, Gutenberg 12.5, Learn.WordPress – Weekend Edition 202";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:35:"https://gutenbergtimes.com/?p=20308";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:109:"https://gutenbergtimes.com/locking-down-design-and-blocks-gutenberg-12-5-learn-wordpress-weekend-edition-202/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:23561:"<p>Howdy, </p>



<p>How have you been after the WordPress 5.9 release? Are you waiting for things to to calm done and 5.9.1 comes out? Yeah, me, too. </p>



<p>When I was working with customers and their sites, I would always wait for the next point release before I upgraded theirs sites to the new version. Yes, even after I tested the Beta and RC candidates on test or staging sites. </p>



<p>With so many new features coming in, not all bugs can be caught in time. Behind the scenes, everyone is working already on 5.9.1 with plenty of fixes, and they aim for a Feb 16 release. We&#8217;ll have further details next week. </p>



<p>The contributors appreciated the time and the work of those who report the bugs.  To quote Linus&#8217; Law: &#8220;Given enough eyeballs, all bugs are shallow&#8221;. </p>



<p>Below you&#8217;ll find a ton of links to articles, additional tools and updates.  You don&#8217;t have to consume it all in one sitting. It&#8217;ll be in your inbox all week. Grab your favorite beverage and enjoy. </p>



<p>Yours, ?<br />Birgit</p>



<hr class="wp-block-separator is-style-wide" />




<div class="wp-container-62157308adcdd wp-block-group has-light-background-background-color has-background"><div class="wp-block-group__inner-container">
<p><strong>Table of Contents</strong></p>



<div class="wp-block-sortabrilliant-guidepost"><ul><li><a href="https://gutenbergtimes.com/feed/#gutenberg-12-5">Gutenberg 12.5 </a></li><li><a href="https://gutenbergtimes.com/feed/#building-themes-custom-blocks-and-extending-the-block-editor">Building Themes, Custom Blocks and extending the block editor</a></li><li><a href="https://gutenbergtimes.com/feed/#using-the-block-editor-with-our-without-the-site-editor">Using the Block Editor with our without the Site Editor </a></li><li><a href="https://gutenbergtimes.com/feed/#wordpress-social-learning-events-and-meetups">WordPress Social Learning Events (and Meetups)</a></li></ul></div>
</div></div>




<p>The last few days, I was hearing and reading about developers&#8217; needs to disable block editor features and make sure blocks in block templates are not removed or altered by content creators. I found quite a few resources and instead of sharing them here I put them in a separate post. </p>



<div class="ngl-articles pure ngl-articles-50_50 ngl-articles-frontend">

	
	<div class="ngl-articles-wrap">
	
						
			<div class="ngl-article-mobile">
				<table width="100%" border="0" cellpadding="0" cellspacing="0">
					<tr>
						<td valign="top">
							<div class="ngl-article-mob-wrap">
							<div class="ngl-article-featured"><a href="https://gutenbergtimes.com/how-to-disable-theme-features-and-lock-block-templates-for-full-site-editing-in-wordpress/" target="_blank" rel=""><img src="https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2022/02/LoveLocks-BridgeinParis-Matthew-Benton-web.jpg?w=652&ssl=1" /></a></div><div class="ngl-article-title"><a href="https://gutenbergtimes.com/how-to-disable-theme-features-and-lock-block-templates-for-full-site-editing-in-wordpress/" target="_blank" rel=""><span>How to disable theme features and Lock Block Templates for Full-Site Editing in WordPress</span></a></div><div class="ngl-article-excerpt">After the release of WordPress 5.9, quite a few people aired their concern that too much freedom for users editing the site design, select colors or to modify blocks might&hellip; <a href="https://gutenbergtimes.com/how-to-disable-theme-features-and-lock-block-templates-for-full-site-editing-in-wordpress/" class="ngl-article-read-more">Read more.</a></div><div class="ngl-article-date">9 Feb 2022</div>							</div>
						</td>
					</tr>
				</table>
			</div>
			
			
			

		
		
		</div>

</div>


<hr class="wp-block-separator is-style-wide" />



<h2 id="gutenberg-12-5">Gutenberg 12.5 </h2>



<p><strong>Fabian Kägy</strong> volunteered to run this week&#8217;s Gutenberg plugin release. He also wrote the release notes: <a href="https://make.wordpress.org/core/2022/02/03/whats-new-in-gutenberg-12-5-february-2nd/">What’s new in Gutenberg 12.5? (February 2nd)</a>. And Kudos to first time contributor who joined during the last release cycle:&nbsp;Alan Jacob Mathew,&nbsp;<a href="https://twitter.com/iman82gm">Iman GM</a> <a href="https://github.com/imangm" target="_blank" rel="noreferrer noopener">@imangm</a>,&nbsp;<a href="https://twitter.com/jorcontreras23">Jorge Contreras</a> and <a href="https://twitter.com/knilkantha">Nil Koirala</a></p>



<p><strong>Justin Tadlock</strong> gave is a whirl is well and here is his review: <a href="https://wptavern.com/gutenberg-12-5-introduces-global-styles-variations-preserves-adjacent-button-styling-and-adds-alpha-transparency-to-color-pickers"><strong>Gutenberg 12.5 Introduces Global Styles Variations, Preserves Adjacent Button Styling, and Adds Alpha Transparency to Color Pickers</strong></a></p>



<p>Yesterday, Grzegorz Ziolkowski and I welcomed Matias Ventura on our <strong><a href="https://gutenbergtimes.com/podcast/gutenberg-changelog-60-restricting-customization-in-a-full-site-editing-world/">Gutenberg Changelog episode 60.</a></strong> We discussed restricting customization in a full-site editing world, Gutenberg 12.5 and what’s to come in WordPress 6.0 for the block editor. We had a great time and I learned a lot. </p>



<a href="https://gutenbergtimes.com/podcast/gutenberg-changelog-60-restricting-customization-in-a-full-site-editing-world/"><img /></a>




<p><strong>&nbsp;<a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/" target="_blank" rel="noreferrer noopener">&#8220;Keeping up with Gutenberg &#8211; Index 2022&#8221;</a>&nbsp;</strong><br />A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test and Meta team from Jan. 2021 on. Updated by yours truly.  <a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/keeping-up-with-gutenberg-index-2020/"><em>The index 2020 is here</em></a></p>




<hr class="wp-block-separator is-style-wide" />



<p>Now that WordPress 5.9 is released it is time to look into the future. <strong>Anne McCarthy</strong> published a new call for exploration for the FSE-outreach program: <a href="https://make.wordpress.org/test/2022/02/02/fse-program-exploration-all-things-media/"><strong>FSE Program Exploration: All Things Media</strong></a>. McCarthy had again a set on instructions to go through and listen to your comfort level and report back on bugs. Then she asked you to imagine how the new WordPress Images directory could be integrated into the Media library and the Site editor. </p>



<p><strong>Justin Tadlock</strong> heeded the call, dove right in and shared his experience in his post on the WPTavern: <a href="https://wptavern.com/fse-program-the-media-experience-and-its-future-in-wordpress"><strong>FSE Program: The Media Experience and Its Future in WordPress</strong></a></p>



<hr class="wp-block-separator is-style-wide" />



<h2 id="building-themes-custom-blocks-and-extending-the-block-editor">Building Themes, Custom Blocks and extending the block editor</h2>



<p><strong>Luis Felipe Zuguini</strong> wrote a very detailed technical walk through how block themes work. You&#8217;ll find it on the Gutenberg Times. </p>



<div class="ngl-articles colored ngl-articles-50_50 ngl-articles-frontend">

	
	<div class="ngl-articles-wrap">
	
						
			<div class="ngl-article-mobile">
				<table width="100%" border="0" cellpadding="0" cellspacing="0">
					<tr>
						<td valign="top">
							<div class="ngl-article-mob-wrap">
							<div class="ngl-article-featured"><a href="https://gutenbergtimes.com/how-theme-blocks-work-with-full-site-editing/" target="_self" rel=""><img src="https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2022/02/Screen-Shot-2022-02-03-at-14.52.08.png?w=652&ssl=1" /></a></div><div class="ngl-article-labels">gutenbergtimes.com</div><div class="ngl-article-title"><a href="https://gutenbergtimes.com/how-theme-blocks-work-with-full-site-editing/" target="_self" rel=""><span>How Block Themes work with Full-Site Editing</span></a></div><div class="ngl-article-excerpt">In this post, you&#8217;ll learn more about how block themes are built. I&#8217;ll share what I learned about building a block theme while I was testing Twenty Twenty-Two, the new&hellip;</div><div class="ngl-article-date">4 Feb 2022</div>							</div>
						</td>
					</tr>
				</table>
			</div>
			
			
			

		
		
		</div>

</div>


<hr class="wp-block-separator is-style-wide" />



<p><strong>Ganesh Dahal</strong> posted <strong><a href="https://css-tricks.com/a-deep-introduction-to-wordpress-block-themes/">A Deep Introduction to WordPress Block&nbsp;Themes</a></strong> on the CSS-Tricks. Their social media team <a href="https://twitter.com/css/status/1489616561010794503">tweeted</a> &#8220;Block themes? Full-site editing? WordPress 5.9 was a huuuuge release and <strong>Ganesh</strong> <strong>Dahal</strong> did a bang-up job explaining what it means for WordPress developers moving forward.&#8221;</p>



<hr class="wp-block-separator is-style-wide" />



<p>We have mentioned the create-block scaffolding tool, available in the Gutenberg repo to get started on your first single block plugin. <strong>Ryan Welcher</strong> just published <a href="https://www.npmjs.com/package/@ryanwelcher/dynamic-block-template"><strong>The Dynamic template</strong></a> on npm to scaffold a dynamic block. </p>



<hr class="wp-block-separator is-style-wide" />



<p><strong><a href="https://twitter.com/salcode">Sal Ferrarello</a></strong>&#8216;s new plugin <a href="https://wordpress.org/plugins/block-xray-attributes/"><strong>Block x-Ray Attributes</strong></a> adds a section to the Document sidebar of the editor and displays the attributes for the currently selected block. This is very helpful during development.</p>



<p>Here is Justin Tadlock&#8217;s <strong><a href="https://wptavern.com/look-under-the-hood-with-the-block-x-ray-wordpress-plugin">Look Under the Hood With the Block X-Ray WordPress Plugin</a> </strong></p>



<hr class="wp-block-separator is-style-wide" />



<p>More Theme Generator Goodies: <strong><a href="https://twitter.com/herb_miller">Herb Miller</a></strong> published an app to <a href="https://blocks.wp-a2z.org/about/fse-themes-summary/generate-fse-child-theme/"><strong>Generate Child Themes for any of the Block theme </strong></a>in the repository. Check it out! </p>



<hr class="wp-block-separator is-style-wide" />



<p>The Gutenberg Components are available for developers that write plugins for all areas of the site. They provide a standardized interface and lower significantly the cognitive load for the user to have to learn new interfaces with every additional plugin in the Admin section. This documentation page covers <a href="https://developer.wordpress.org/block-editor/how-to-guides/platform/custom-block-editor/">Building a Custom block editor</a> and you also find a <a href="https://developer.wordpress.org/block-editor/how-to-guides/platform/custom-block-editor/tutorial/">Tutorial Building a Custom Block Editor</a></p>



<p><strong>Converting Widgets to Block</strong> is a series of Videos, <strong>Ryan Welcher</strong> Twitchstreamed and then uploaded to YouTube</p>



<ul><li><a href="https://www.youtube.com/watch?v=ls1_XTfQJmg">Converting a widget to a block. Part 1</a></li><li><a href="https://www.youtube.com/watch?v=3E4pcubPkEo">Converting a widget to a block. Part 2</a></li></ul>



<hr class="wp-block-separator is-style-wide" />



<p><a href="https://senseilms.com/wordpress-course-theme/"><strong>Sensei 4.0 &#8211; the learning management system (LMS) by the makers of WooCommerce and Jetpack,</strong></a> has been released. In his post, <strong><a href="https://twitter.com/ronnieburt">Ronnie Burt </a></strong>announce the arrival of a block-based theme ready for full-site editing. &#8220;You can use the Site Editor added in&nbsp;WordPress 5.9&nbsp;to edit the Lesson and Quiz templates, giving you endless flexibility.&#8221; Burt wrote. </p>



<p>Justin Tadlock picked up the story<strong><a href="https://wptavern.com/sensei-lms-4-0-includes-new-block-based-learning-mode-course-theme"> Sensei LMS 4.0 Introduces New Block-Based Learning Mode Course Theme</a></strong>. He wrote: &#8220;Sensei is one of the first plugins to offer this kind of separate, in-app FSE-enabled theme.&#8221;. The plugin is available for free, and you can study the source-code, if you want. </p>



<hr class="wp-block-separator is-style-wide" />



<p><strong><a href="https://twitter.com/kjellr">Kjell Reigstad</a></strong>, lead designer of the Twenty-Twenty-Two theme, built a theme that makes your site look like Twitter. In his post <strong><a href="https://kjellr.com/2022/01/28/building-twitter-with-wordpress-5-9/">Building Twitter with WordPress 5.9</a></strong> he tells us how. </p>




<p><strong><a href="https://gutenbergtimes.com/need-a-zip-from-master/">Need a plugin .zip from Gutenberg&#8217;s main (trunk) branch?</a></strong><br />Gutenberg Times provides daily build for testing and review. <br />Have you been using it? Hit reply and let me know.</p>



<p><img alt="GitHub all releases" src="https://img.shields.io/github/downloads/bph/gutenberg/total" /></p>




<h2 id="using-the-block-editor-with-our-without-the-site-editor">Using the Block Editor with our without the Site Editor </h2>



<p><strong>Jamie Marsland</strong> tasked two of his daughters, Meg and Lily, both WordPress beginners, to build the same page &#8211; one with Elementor and one with the block editor. It&#8217;s fun to watch, and also painful. No matter which editor you use, getting started &#8216;intuitively&#8217; is hard. </p>



<p>The video <a href="https://www.youtube.com/watch?v=ng_wFkMd95c"><strong>WordPress Gutenberg versus Elementor &#8211; The £20 Prize Beginners Challenge!</strong> </a>is available on YouTube. </p>



<a href="https://www.youtube.com/watch?v=ng_wFkMd95c"><img /></a>



<p><strong>Learn.WordPress Resources to help you get started! <a href="https://twitter.com/courtneyr_dev">Courtney Robertson</a></strong> shared these links on Twitter the day of the WordPress 5.9 release. </p>



<ul><li><a href="https://learn.wordpress.org/course/simple-site-design-with-full-site-editing/">Simple Site Design with Full Site Editing</a> a self-pace online course</li><li><a href="https://learn.wordpress.org/workshop/how-to-use-the-list-view/">How to use the List View</a> </li><li><a href="https://learn.wordpress.org/workshop/how-to-style-your-site-with-global-styles/">How to Style Your Site with Global Styles</a></li><li><a href="https://learn.wordpress.org/workshop/how-to-create-a-menu-with-the-navigation-block/">How to Create a Menu with the Navigation Block</a></li><li><a href="https://learn.wordpress.org/workshop/using-block-patterns/">Using Block Patterns</a></li><li><a href="https://learn.wordpress.org/workshop/finding-new-blocks-with-the-block-directory/">Finding New Blocks with the Block Directory</a></li><li><a href="https://learn.wordpress.org/workshop/using-the-block-widget-editor/">Using the Block Widget Editor</a></li></ul>



<hr class="wp-block-separator is-style-wide" />



<p><strong><a href="https://twitter.com/get_dave">Dave Smith</a></strong>, developer at Automattic and contributor to Gutenberg, posted two videos on YouTube to teach you more about the new <strong>Navigator Block</strong></p>



<ul><li><a href="https://www.youtube.com/watch?v=BzDCCNjF9mg"><strong>Migrating classic menus to block based menus in WordPress 5.9</strong></a></li><li><a href="https://www.youtube.com/watch?v=dY3f8sHcAPA"><strong>Use a different menu on mobile with the Navigation block in WordPress 5.9</strong></a></li></ul>



<hr class="wp-block-separator is-style-wide" />



<p><strong>Anne McCarthy</strong> published the answer to so many questions by <a href="https://wordpress.org/support/article/comparing-patterns-template-parts-and-reusable-blocks/"><strong>Comparing Patterns, Template Parts, and Reusable Blocks</strong></a>. She explains the difference of the three entities a WordPress user has in the block editor toolbox to reuse content and designs in various contexts</p>



<hr class="wp-block-separator is-style-wide" />



<p><strong><a href="https://www.youtube.com/watch?v=gUklhzALumk">First Look: A WordPress 5 9 + Full Site Editing Demo</a> </strong>&#8211; Join GoDaddy Pro&#8217;s <strong>Courtney Robertson</strong> and <strong>Marcus Burnette</strong> as they chat about the new features of version 5.9 and set up a simple home page LIVE using the new FSE process.</p>



<hr class="wp-block-separator is-style-wide" />



<p>Do you want to know what WordPress Full Site Editing (FSE) and block themes are?<strong> Ellen Bauer </strong>posted a new video: <strong><a href="https://www.youtube.com/watch?v=WQAJPIsLMDY">WordPress Full Site Editing (FSE) &amp; Block Themes explained</a></strong>. She explained the concept of Full-Site Editing and the new features and block theme that arrived with WordPress 5.9.</p>



<hr class="wp-block-separator is-style-wide" />



<p>In his newest video <a href="https://www.youtube.com/watch?v=-AIuhvHCnlY"><strong>What’s New In WordPress 5.9</strong></a>, <strong><a href="https://twitter.com/joyofwp">Bud Kraus of JoyofWP</a></strong>,  walks you through the new Full -Site editing features. It&#8217;s a mix between demo and tutorial. He shows you how to get your site building tasks done.</p>



<hr class="wp-block-separator is-style-wide" />



<p><strong>Joe Casabona</strong> asks <a href="https://wpreview.io/who-is-full-site-editing-for/"><strong>&#8220;Who is Full-Site Editing for?&#8221;</strong></a> &#8211; I prefer not to spoil anything, he does have an answer. I did chuckle at the &#8220;It&#8217;s not a Bad Beta&#8221; sub header 3/4 in his post.</p>



<hr class="wp-block-separator is-style-wide" />



<p>If you know what to get going  with block themes, <strong><a href="https://twitter.com/MehtaTrishan">Trishan Mehta</a></strong> lists his choice of <a href="https://passionwp.com/wordpress-block-themes/"><strong>12 WordPress Block Themes for Full Site Editing</strong></a> on PassionWP&#8217;s website. </p>



<hr class="wp-block-separator is-style-wide" />



<p><a href="https://twitter.com/webtng"><strong>David McCan</strong></a> wrote a <a href="https://www.webtng.com/kadence-and-stackable-gutenberg-blocks-comparison/"><strong>Kadence and Stackable Gutenberg Blocks Comparison</strong></a>, and give in-depth view in two plugins that have been available since the first version of the Block Editor arrived at WordPress Core.  </p>



<hr class="wp-block-separator is-style-wide" />



<p>Joining Classic Widgets, Classic Editor, there is now the <a href="https://www.spacedmonkey.com/2022/01/31/announcing-the-classic-menu-block-plugin/"><strong>Classic Menu Block</strong></a> by <a href="https://twitter.com/thespacedmonkey"><strong>Jonny Harris</strong> </a>available to easy your site&#8217;s menus into the block-based era. &#8220;The classic menu block, allows you to embed all the existing menus you have set up on your site, using the existing core function, <code>wp_nav_menu</code> by rendering the block’s output in PHP,&#8221; Harris wrote.</p>



<hr class="wp-block-separator is-style-wide" />



<p>After giving you a sneak preview on the new <a href="https://wordpress.org/plugins/superlist-block/">Super List Block</a> plugin last week, developer <strong>Aurooba Ahmed</strong> share more details in her article <a href="https://aurooba.com/superlist-block/">&#8220;<strong>Nest blocks inside lists and easily create a grid of content with the Super List Block&#8221;</strong></a>. She explains how the Grid Block simplifies your content creation over multiple group block and gives you also responsiveness for small screens. </p>



<p><strong>Matt Medeiros</strong> posted his walkthrough using the plugin on YouTube <a href="https://www.youtube.com/watch?v=v6RX6r23u98"><strong>Superlist block | WordPress plugin overview</strong></a>.</p>



<hr class="wp-block-separator is-style-wide" />



<p>A new plugin arrived in the WordPress repository: <a href="https://wordpress.org/plugins/wavy-divider/"><strong>Wavy Divider Plugin</strong></a> by <strong>Kevin Batdorf</strong>, the Project Lead Developer at Extendify. With it, you can &#8220;generate and add a simple wavy divider to anywhere on your page, giving you the ability to separate blocks of content with an impressive, professional-looking design element.&#8221; Batdorf wrote.  <br /><br /><strong>Justin Tadlock</strong> posted a review on WPTavern: <a href="https://wordpress.org/plugins/wavy-divider/"><strong>Creating Content Dividers With the Wavy Divider WordPress Plugin</strong></a></p>



<hr class="wp-block-separator is-style-wide" />



<h2 id="wordpress-social-learning-events-and-meetups">WordPress Social Learning Events (and Meetups)</h2>



<p>Earlier this week, I had the great pleasure to participate in the <a href="https://thewpminute.com/wp-minute-live-learning-wordpress/"><strong>WPMinute Twitter Space on Learning WordPress</strong></a>, hosted by <a href="https://twitter.com/mattmedeiros"><strong>Matt Medeiros</strong></a> and <strong><a href="https://twitter.com/schutzsmith">Daniel Schutzsmith </a></strong>and with <a href="https://twitter.com/hauwazhiya"><strong>Hauwa Abashiya</strong></a> from the Learn.WordPress team and <a href="https://twitter.com/jcasabona"><strong>Joe Casabona</strong></a>, who coaches site builders. Listen to the show and follow the links in the post. </p>



<hr class="wp-block-separator is-style-wide" />



<p><strong>February 7, 2022, 12pm (noon) ET / 17:00 UTC </strong><br /><a href="https://www.meetup.com/wordpress-social-learning/events/283323367/"><strong>Taking Control Over the Editor for Client Builds</strong></a> with Fabian Kägy via WordPress Social Learning Spaces</p>



<p><strong>February 8th, 2022 11 am / 16:00 UTC (full)</strong><br /><a href="https://www.meetup.com/wordpress-social-learning/events/283412026/"><strong>Gutenberg Developer Hours</strong></a> with Birgit Pauli-Haack and expert panel via WordPress Social Learning Spaces: Tammie Lister, Nick Diego and Fabian Kägy </p>



<p><strong>February 9th, 2022 5pm ET / 22:00 UTC </strong><br /><a href="https://www.meetup.com/wordpress-social-learning/events/283371670/"><strong>Using Block Patterns</strong></a> with Wes Theron via WordPress Social Learning Spaces</p>



<p><strong>February 14, 2022 – 4 pm ET / 21:00 UTC </strong><br /><a href="https://www.meetup.com/wordpress-social-learning/events/283237147/"><strong>Exploring Theme Blocks</strong></a><strong> </strong>with Wes Theron via WordPress Social Learning Spaces</p>



<p><strong>February 21, 2022 &#8211; 12 pm (noon) ET / 17:00 UTC</strong><br /><a href="https://www.meetup.com/wordpress-social-learning/events/283644263/"><strong>Hello Blocks! Coding a custom block</strong></a> via WordPress Social Learning w/ Wes Theron and Ryan Welcher. </p>



<p>February 22, 2022 &#8211; 11 am ET / 16:00 UTC<br /><strong><a href="https://www.meetup.com/wordpress-social-learning/events/283720638/">Gutenberg Developer Hours</a></strong> with Birgit Pauli-Haack and expert panel via WordPress Social Learning Spaces</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 05 Feb 2022 19:26:00 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:18:"Birgit Pauli-Haack";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:46;a:6:{s:4:"data";s:13:"
	
	
	
	
	
	
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:106:"Gutenberg Times: How to disable theme features and Lock Block Templates for Full-Site Editing in WordPress";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:35:"https://gutenbergtimes.com/?p=20336";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:117:"https://gutenbergtimes.com/how-to-disable-theme-features-and-lock-block-templates-for-full-site-editing-in-wordpress/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:10116:"<p>After the release of WordPress 5.9, quite a few people aired their concern that too much freedom for users editing the site design, select colors or to modify blocks might be the opposite of what customers want.  Especially more complex websites with many editors and departments who produce content need guard rails to enforce publishing standards and adherence to brand color schemas and design systems. </p>



<p>Below I list of documentation links and code examples for the myriad of ways to restrict access or choices for users. As WordPress 5.9 is only a beta version of the Full-Site editing experience, you also can participate in linked discussion on GitHub for development still in progress. </p>



<h2 id="locking-block-templates-and-block-patterns">Locking Block Templates and Block Patterns</h2>



<p>Developers can register block templates (a collection of blocks, with lock attributes) for instance for custom posts types. More about it in the <a href="https://href.li/?https://developer.wordpress.org/block-editor/reference-guides/block-api/block-templates/">Block Editor Handbook</a>. This feature has been available for a few years now. It’s not directly related to FSE. The lock mechanism can also be applied to Block Patterns. </p>



<p>With WordPress 5.9 documentation you can find the DevNote: <a href="https://make.wordpress.org/core/2022/01/08/locking-blocks-in-wordpress-5-9/">Locking Blocks in WordPress 5.9</a>. It describes the settings for the block attributes &#8220;lock&#8221; and how you can control, adding, inserting as well as moving or removing blocks. </p>



<p>There are discussion held on GitHub repository, that could use your input, if you are developing sites that need guard rails.</p>



<ul><li><a href="https://github.com/WordPress/gutenberg/issues/29864">On Locking and TemplateLocking (a Tracking Issue)</a></li><li><a href="https://github.com/WordPress/gutenberg/pull/26128">Learn more about the TemplateLock attribute to column and group</a></li></ul>



<div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content"><a href="https://make.wordpress.org/core/2022/02/09/core-editor-improvement-curated-experiences-with-locking-apis-theme-json/">Core Editor Improvement: Curated experiences with locking APIs &amp; theme.json</a></blockquote>
</div>



<h2 id="demo-on-locking-block-templates-patterns-and-via-theme-json-by-ryan-welcher">Demo on Locking Block Templates, Patterns and via theme.json by Ryan Welcher</h2>



<p><a href="https://www.twitch.tv/videos/1285533518">In this week&#8217;s Twitch Stream session</a>, <strong>Ryan Welcher</strong> demonstrated how Locking Blocks and block templates works. </p>



<div class="wp-block-embed__wrapper">
<div class="toolbelt-video-wrapper"></div> 
</div>



<p>Welcher also share the <a href="https://github.com/ryanwelcher/gutenberg-block-level-locking">link to his plugin</a>, built of testing and educational purposes. </p>



<a href="https://www.youtube.com/watch?v=4hNXRdfYx7g "><img /></a>



<h2 id="permission-system-for-fse-theme-templates">Permission System for FSE theme templates.</h2>



<p>In discussions, contributors look at the relevant aspects on how to handle permission for various sections on themes, templates, and template parts. </p>



<ul><li><a href="https://github.com/WordPress/gutenberg/issues/37489">Multi-entity permission management</a></li><li><a href="https://github.com/WordPress/gutenberg/issues/27597">Proposal: robust permissions system for FSE theme templates</a></li></ul>



<h2 id="disable-user-design-controls-for-blocks-and-block-themes">Disable User design controls for blocks and block themes</h2>



<p>The theme.json file is the place where you can configure the user controls for gradient, color choices, font settings or background colors. </p>



<p>Anne McCarthy posted a video <a href="https://www.youtube.com/watch?v=YPU-sT96f2g">Connecting The Dots: Using duotone in theme.json to customize your image blocks</a></p>



<div class="wp-block-embed__wrapper">
<div class="toolbelt-video-wrapper"></div>
</div>



<p>Here are a few, this might not a comprehensive yet. </p>



<p>If you want to use <strong>theme</strong>.<strong>json</strong> in a classic theme, but you don&#8217;t want to allow access to the template editor, add <code>remove_theme_support( 'block-templates' )</code> to your functions.php file. Hat tip to <a href="https://twitter.com/ryanwelcher/status/1489613396651786247"><strong>Ryan Welcher </strong>for this tweet.</a> </p>



<p><strong>Carolina Nymark</strong> wrote in her course on building theme for full-site Editing about <a href="https://fullsiteediting.com/lessons/global-styles/#h-enable-or-disable-features"><strong>Enabling and Disabling features in theme.json</strong></a></p>



<p>Thanks to <strong>David Gwyer</strong>&#8216;s  <a href="https://www.themegen.app/">block theme.json Generator</a>, I could to set all the settings to zero or false or to empty arrays to removing color, border, typography, and spacing controls. </p>



<p><em>I have not tested all settings below, so use at your own risk. </em></p>



<h3 id="colors">Colors</h3>


<pre class="wp-block-code"><div><code class="hljs language-javascript"><span class="hljs-string">"color"</span>: {
      <span class="hljs-string">"background"</span>: <span class="hljs-literal">false</span>,
      <span class="hljs-string">"custom"</span>: <span class="hljs-literal">false</span>,
      <span class="hljs-string">"customDuotone"</span>: <span class="hljs-literal">false</span>,
      <span class="hljs-string">"customGradient"</span>: <span class="hljs-literal">false</span>,
      <span class="hljs-string">"defaultGradients"</span>: <span class="hljs-literal">false</span>,
      <span class="hljs-string">"defaultPalette"</span>: <span class="hljs-literal">false</span>,
      <span class="hljs-string">"duotone"</span>: [],
      <span class="hljs-string">"gradients"</span>: [],
      <span class="hljs-string">"link"</span>: <span class="hljs-literal">false</span>,
      <span class="hljs-string">"palette"</span>: [],
      <span class="hljs-string">"text"</span>: <span class="hljs-literal">false</span>
}

</code></div><small class="shcb-language" id="shcb-language-1"><span class="shcb-language__label">Code language:</span> <span class="shcb-language__name">JavaScript</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">javascript</span><span class="shcb-language__paren">)</span></small></pre>


<h3 id="border-controls">Border Controls</h3>


<pre class="wp-block-code"><div><code class="hljs language-javascript"><span class="hljs-string">"border"</span>: {
      <span class="hljs-string">"color"</span>: <span class="hljs-literal">false</span>,
      <span class="hljs-string">"radius"</span>: <span class="hljs-literal">false</span>,
      <span class="hljs-string">"style"</span>: <span class="hljs-literal">false</span>,
      <span class="hljs-string">"width"</span>: <span class="hljs-literal">false</span>
    },</code></div><small class="shcb-language" id="shcb-language-2"><span class="shcb-language__label">Code language:</span> <span class="shcb-language__name">JavaScript</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">javascript</span><span class="shcb-language__paren">)</span></small></pre>


<h3 id="typography">Typography</h3>


<pre class="wp-block-code"><div><code class="hljs language-javascript"> <span class="hljs-string">"typography"</span>: {
      <span class="hljs-string">"customFontSize"</span>: <span class="hljs-literal">false</span>,
      <span class="hljs-string">"dropCap"</span>: <span class="hljs-literal">false</span>,
      <span class="hljs-string">"fontFamilies"</span>: [],
      <span class="hljs-string">"fontSizes"</span>: [],
      <span class="hljs-string">"fontStyle"</span>: <span class="hljs-literal">false</span>,
      <span class="hljs-string">"fontWeight"</span>: <span class="hljs-literal">false</span>,
      <span class="hljs-string">"letterSpacing"</span>: <span class="hljs-literal">false</span>,
      <span class="hljs-string">"lineHeight"</span>: <span class="hljs-literal">false</span>,
      <span class="hljs-string">"textDecoration"</span>: <span class="hljs-literal">false</span>,
      <span class="hljs-string">"textTransform"</span>: <span class="hljs-literal">false</span>
    }</code></div><small class="shcb-language" id="shcb-language-3"><span class="shcb-language__label">Code language:</span> <span class="shcb-language__name">JavaScript</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">javascript</span><span class="shcb-language__paren">)</span></small></pre>


<h3 id="spacing">Spacing</h3>


<pre class="wp-block-code"><div><code class="hljs language-javascript"> <span class="hljs-string">"spacing"</span>: {
      <span class="hljs-string">"blockGap"</span>: <span class="hljs-literal">null</span>,
      <span class="hljs-string">"margin"</span>: <span class="hljs-literal">false</span>,
      <span class="hljs-string">"padding"</span>: <span class="hljs-literal">false</span>,
}</code></div><small class="shcb-language" id="shcb-language-4"><span class="shcb-language__label">Code language:</span> <span class="shcb-language__name">JavaScript</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">javascript</span><span class="shcb-language__paren">)</span></small></pre>


<p><strong>Have you found additional tweaks you apply to keep design choices safe? </strong>Please share them in the comments.  </p>



<p><em>Featured Image: <a href="https://www.flickr.com/photos/83914470@N00/10481132656" target="_blank" rel="noreferrer noopener">&#8220;Locks on Bridge, Paris.&#8221;</a>&nbsp;by&nbsp;<a href="https://www.flickr.com/photos/83914470@N00" target="_blank" rel="noreferrer noopener">Matt Benton</a>&nbsp;is licensed under&nbsp;<a href="https://creativecommons.org/licenses/by-nc-sa/2.0/?ref=openverse&atype=rich" target="_blank" rel="noreferrer noopener">CC BY-NC-SA 2.0</a></em></p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 05 Feb 2022 17:47:27 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:18:"Birgit Pauli-Haack";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:47;a:6:{s:4:"data";s:13:"
	
	
	
	
	
	
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:74:"WPTavern: Creating Content Dividers With the Wavy Divider WordPress Plugin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:30:"https://wptavern.com/?p=129554";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:85:"https://wptavern.com/creating-content-dividers-with-the-wavy-divider-wordpress-plugin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3681:"<p class="has-drop-cap">Kevin Batdorf, the Project Lead Developer at Extendify, released the <a href="https://wordpress.org/plugins/wavy-divider/">Wavy Divider plugin</a> earlier this week. It is described as &#8220;a colorful, fun, lightweight divider block to energize your website with character and pizazz.&#8221;</p>



<p>As someone who believes every Friday should be officially titled &#8220;Fun Friday,&#8221; how could I not install and activate it?</p>



<p>I have not seen many block plugins employ a random design option before, and Wavy Divider may be the first. Its foremost setting is a &#8220;shuffle waves&#8221; control. When a user clicks it, the divider is regenerated with new locations for its peaks and valleys.</p>



<img />Adding the first Wavy Divider.



<p>I have mixed feelings about the shuffling option. One side of me wants to know what I am getting before I hit the button, and the other is pleasantly enjoying the randomness of it all. Users who prefer tight control over each point where each wave rises or slopes down might want to look elsewhere.</p>



<p>The plugin is not entirely a jumble of unpredictability. It offers a handful of other options for users to exert some control over its output. There are toggles for the divider&#8217;s smoothness and direction. The former switches between the default wavy style and its straight-lined rigid counterpart. The latter moves the wave flow from the bottom to the top and vice versa.</p>



<p>Users can set the divider&#8217;s height, points, and opacity. There is also a color option.</p>



<p>If you really want to get creative, your best option is mixing and matching it with the core Group and Cover blocks. The plugin&#8217;s documentation walks users through <a href="https://github.com/KevinBatdorf/wavy-divider#gradients">creating a mirrored gradient</a> effect by using two dividers inside a Group. I followed the directions and built a gradient river that flowed across the screen:</p>



<img />Two dividers inside of a Group block with a gradient.



<p>In the right hands, it is entirely possible to buff out some of the roughness, putting a professional sheen on top of it all.</p>



<p>I threw together an intro section for a fitness or adventure blog. The goal was to create the appearance of a site owner with personality. However, better designers will use it to piece together something unique to their brands.</p>



<img />Adventure blog intro section with bottom divider.



<p>Half the fun of this plugin is trying out-of-the-ordinary combinations with other blocks. The other half is discovering new shapes via the shuffle option.</p>



<p>You can also use the plugin for your next low-budget horror film&#8217;s cover art (<em>this was absolutely an experiment <strong>gone weird</strong> when testing this plugin, but I figured I would share anyway</em> ):</p>



<img />



<p>There is a little something for anyone with an imagination or enough time to repeatedly click the &#8220;shuffle waves&#8221; button until they land on that perfect wave shape. As I said, it is Friday, and we should all let loose and have a little fun.</p>



<p>I tend to bookmark projects with well-structured code for my own edification, and Wavy Divider fits that mold. For developers who want relatively simple examples of block development to study, it would be hard to go wrong using it as a starting point. The code is <a href="https://github.com/KevinBatdorf/wavy-divider">available on GitHub</a>.</p>



<div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content"><a href="https://wordpress.org/plugins/wavy-divider/">Wavy Divider</a></blockquote>
</div>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 05 Feb 2022 02:18:10 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:14:"Justin Tadlock";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:48;a:6:{s:4:"data";s:13:"
	
	
	
	
	
	
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:61:"Gutenberg Times: How Block Themes work with Full-Site Editing";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:35:"https://gutenbergtimes.com/?p=20216";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:72:"https://gutenbergtimes.com/how-theme-blocks-work-with-full-site-editing/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:23887:"<p>In this post, you&#8217;ll learn more about how block themes are built. I&#8217;ll share what I learned about building a block theme while I was testing Twenty Twenty-Two, the new default theme now shipped with WordPress 5.9, featuring the full-site editing experience. For this walk-through, I ran <a href="https://github.com/WordPress/twentytwentytwo">trunk Twenty-Twenty-Two</a>, with <a href="https://github.com/WordPress/gutenberg">trunk Gutenberg</a> and WordPress 5.8.2.</p>



<p>You can just upgrade to WP 5.9, and the experience should be the same for you. The theme is now available in the <a href="https://wordpress.org/themes/twentytwentytwo/">WordPress.org Theme Repository for download</a>.</p>



<p>Activating Twenty-Twenty-Two gives us this:</p>



<img src="https://lh5.googleusercontent.com/DbEalrK_a4anZSBUhSAD4F69W8EyPYb3LXbuIStrNlGKxZh_g1YH2CPBsxcaLCE7tLlYUsi-Gqx_Zo2XQWEBnXnlbtG-R2nwtE46h9G4Z0tkM_ftsERAhsQbXM5ik2JnrmMEIBou" alt="" />



<p>This looks about right. That’s the default Twenty-Twenty-Two home page.</p>



<h2 id="defining-a-block-theme"><strong>Defining a block theme</strong></h2>



<p>All the magic starts in the theme.json file. When this file is present in the active theme, the <a href="https://wordpress.org/support/article/template-editor/">template editor</a> becomes available. This was a feature added in WordPress 5.8.</p>



<p>Next, the presence of <code>templates/index.html</code> determines if the site editor interface should be made available in place of the Customizer. </p>



<p>One interesting bit of the <code>functions.php</code> file is that the developers call <code>add_theme_support( 'wp-block-styles' )</code>, <a href="https://developer.wordpress.org/block-editor/how-to-guides/themes/theme-support/">according to the handbook</a>, to “opt-in to slightly more opinionated styles for the front end”. This will include a couple of block-specific styles listed <a href="https://github.com/WordPress/gutenberg/blob/trunk/packages/block-library/src/theme.scss">here</a>. It’s mostly default styling that makes some blocks (e.g. Image) look better.</p>



<p>To demonstrate, I added one Image block and defined the caption. This is how it looks on the editor:</p>



<img src="https://lh5.googleusercontent.com/CausjW9WHXgHvitsq5ypwQwznnfvdos4Iy8JJXJRuu-t_axkN6ABJhExdXXijYyQsJ1kK-P_neF6RNcZboVVTSEXfwB1H-S6okTglO2GyDo9LfSMEzhIQPT_-qYpIvVWiwZdAe_P" alt="" />



<p>Below you can see how it looks on the live site. Left is without <code>wp-block-styles</code>. Right is with it included. Notice how the caption is center-aligned, with smaller font size and gray-colored. Using <code>wp-block-styles</code> makes the end result look exactly like the preview.</p>




<img />



<img />




<p>The developers enqueued fonts inside the <code>twentytwentytwo_get_font_face_styles</code> function, which is called when the user opens the editor or the frontend of the site. But make no mistake: all of the styles need to be enqueued for the editor and front end – not just font-face ones. That&#8217;s what makes them look the same!</p>



<p>At the end of the <code>functions.php</code> file, there’s a required call to <a href="https://github.com/WordPress/twentytwentytwo/blob/trunk/inc/block-patterns.php">/inc/block-patterns.php</a> so we can get block patterns registered. More on that later.</p>



<h2 id="how-block-theming-works-theme-json"><strong>How block theming works theme.json</strong></h2>



<p>There’s a file called <code>theme.json</code> that defines some properties, most notably styles and settings. I’ll walk you through all the properties defined in Twenty-Twenty-Two, and there’s a <a href="https://developer.wordpress.org/block-editor/how-to-guides/themes/theme-json/">handbook page about it</a> if you want more information.</p>



<p>We’re using <a href="https://github.com/WordPress/twentytwentytwo/pull/217">version 2 of the specification</a>, which comes with some adjustments, like removing the custom prefix. Version 2 is officially supported on 5.9, matching the theme’s required version.</p>



<p>One of the most important parts of the theme lives inside settings. We define preset color pallette; typography presets (such as font families and sizes); spacing unit options, as well as custom CSS variables that can be used both inside and outside of <code>theme.json</code>. </p>



<p>All the entries defined in this property are exposed through CSS variables that are used inside stylesheets, block patterns, and blocks themselves.</p>



<p>Aside from presets defined in settings there are also &#8220;supports&#8221; options to enable or disable certain controls based on the theme developer&#8217;s preferences both at the global and individual block levels.&nbsp;</p>



<p>For example, it could be that the content creator should be limited to only selecting from the predefined theme colors and so the custom color control would be disabled in the theme.json settings file with something like this:</p>


<pre class="wp-block-code"><div><code class="hljs language-json shcb-code-table shcb-line-numbers"><span class="shcb-loc"><span>{
</span></span><span class="shcb-loc"><span>    <span class="hljs-attr">"version"</span>: <span class="hljs-number">2</span>,
</span></span><span class="shcb-loc"><span>    <span class="hljs-attr">"settings"</span>: {
</span></span><span class="shcb-loc"><span>        <span class="hljs-attr">"color"</span>: {
</span></span><span class="shcb-loc"><span>            <span class="hljs-attr">"custom"</span>: <span class="hljs-literal">false</span>
</span></span><span class="shcb-loc"><span>        }
</span></span><span class="shcb-loc"><span>    }
</span></span><span class="shcb-loc"><span>}
</span></span></code></div><small class="shcb-language" id="shcb-language-5"><span class="shcb-language__label">Code language:</span> <span class="shcb-language__name">JSON / JSON with Comments</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">json</span><span class="shcb-language__paren">)</span></small></pre>


<p>The Twenty-Twenty-Two theme doesn’t have many restrictions as it’s meant for the general population. It does turn off DropCaps, though.&nbsp;</p>


<pre class="wp-block-code"><div><code class="hljs language-json shcb-code-table shcb-line-numbers"><span class="shcb-loc"><span>{
</span></span><span class="shcb-loc"><span>    <span class="hljs-attr">"version"</span>: <span class="hljs-number">2</span>,
</span></span><span class="shcb-loc"><span>    <span class="hljs-attr">"settings"</span>: {
</span></span><span class="shcb-loc"><span>       <span class="hljs-attr">"typography"</span>: {
</span></span><span class="shcb-loc"><span>          <span class="hljs-attr">"dropCap"</span>: <span class="hljs-literal">false</span>,
</span></span><span class="shcb-loc"><span>            …
</span></span><span class="shcb-loc"><span>        }
</span></span><span class="shcb-loc"><span>   }
</span></span><span class="shcb-loc"><span>}
</span></span></code></div><small class="shcb-language" id="shcb-language-6"><span class="shcb-language__label">Code language:</span> <span class="shcb-language__name">JSON / JSON with Comments</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">json</span><span class="shcb-language__paren">)</span></small></pre>


<p>There are also many default design control settings inside the styles property. They’re applied to blocks, global color settings, HTML elements, global spacing, and global typography settings. This section gives Twenty-Twenty-Two its unique feeling because here the default design control settings are defined and are enqueued to the CSS that’s pushed to the browser.</p>



<p>Then, one can use all the properties defined in <code>theme.json</code> inside their style files by using the power of CSS variables, as Gutenberg will inject them into the file. The variable path is a reduction of the actual property path. Something like:</p>


<pre class="wp-block-code"><div><code class="hljs language-css shcb-code-table shcb-line-numbers"><span class="shcb-loc"><span><span class="hljs-selector-tag">body</span> {
</span></span><span class="shcb-loc"><span>
</span></span><span class="shcb-loc"><span>  <span class="hljs-attribute">color</span>: <span class="hljs-built_in">var</span>(–wp–preset–color–primary);
</span></span><span class="shcb-loc"><span>
</span></span><span class="shcb-loc"><span>}
</span></span></code></div><small class="shcb-language" id="shcb-language-7"><span class="shcb-language__label">Code language:</span> <span class="shcb-language__name">CSS</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">css</span><span class="shcb-language__paren">)</span></small></pre>


<p>Enables a block to read theme configuration on the live site.</p>



<h2 id="templates-and-template-parts"><strong>Templates and template parts</strong></h2>



<p>The difference between Templates and Template Parts is that the former is a full-page template (be it custom or not), such as home. Both templates and parts can use — block patterns.</p>



<p>Templates are rendered when viewing specific sections of the site (404 pages or post archives are good examples), and obviously, you can define custom templates that might be picked for specific postTypes, such as post or page.</p>



<p>Template parts are almost the same, except that instead of defining a whole page, they are part of a specific section of the template. In Twenty-Twenty-Two’s case, header and footer.</p>



<p>Twenty-Twenty-Two includes a couple of templates and template parts. These are defined inside <code>theme.json</code>. The purpose of defining templates in theme.json is to determine which <code>post types</code> the template should be available for use on. For example, the Page (Large Header) template is limited only to pages whereas the Blank template is made available for use as the template for both posts and pages.</p>



<p>Similarly template parts can be defined as intended for use as a header or footer in <code>theme.json</code>.</p>



<p>Some specifics about the templates in Twenty Twenty-Two:</p>



<ul><li><strong>404</strong> uses the header and footer parts, along with a hidden pattern called hidden-404, which cannot be selected inside the Patterns selector;</li><li><strong>archive</strong>, is using the Query block just like the home and index templates uses it. The difference between the three is that home has a bigger header than index, and archive has an additional block indicating that the user is browsing the post archives;</li><li><strong>page and single</strong>, that have some variations (large header, no separators) but their purpose is to display a page or a single post. The difference between the two is that the page template does not display metadata, such as the date, author and terms;</li><li>There is also a <strong>blank template</strong> so one could create a page or post from scratch. It only has a post content block. This template allows users to define a single-page website. <a href="https://2022.wordpress.net/film/">Here’s an example</a> from the demo that uses it.</li></ul>



<p>The template parts are pretty basic:</p>



<ul><li><strong>footer,</strong> which is basically a Group block with padding and a theme pattern (footer-default) inside;</li><li><strong>header</strong>, with the Site Logo and Site Title blocks, and a Navigation block to the right;</li><li><strong>header-small-dark</strong> and <strong>header-large-dark</strong>, that include the header template part — a template part that uses a template part ? — at the top and hidden-bird and hidden-heading-and-bird theme patterns, respectively.</li></ul>



<p><strong>Kjell Reigstad</strong>, designer of the Twenty-Twenty-Two theme explained the hidden-heading-and-bird pattern a bit more: <em>“This is a little trick we used to ensure that changes the user makes to the main header and navigation stay in sync throughout their entire site. I don’t think most other themes will need to do this, but it works well for Twenty Twenty-Two.”</em></p>



<h2 id="how-block-and-patterns-in-general-work"><strong>How block (and patterns in general) work</strong></h2>



<p>Twenty-Twenty-Two has 66 block patterns, so I’m not going to describe them here. Instead, let’s see <em>how</em> they work.&nbsp;</p>



<p>Inside <code><a href="https://github.com/WordPress/twentytwentytwo/blob/trunk/inc/block-patterns.php">inc/block-patterns.php</a></code>, Twenty-Twenty-Two registers block pattern categories using the <code>register_block_pattern_category</code> function. That function accepts an associative array with the slug of the category, along with its name. </p>



<img />



<p>After that, it registers each block pattern by calling <code>register_block_pattern</code>, passing the slug of the pattern and another associative array with a few properties:</p>



<ul><li>title;</li><li>categories (at least one of the defined above, except if it’s a hidden pattern);</li><li>blockTypes, that declare in what kind of blocks I can insert this pattern to;</li><li>content of the pattern, formed of one or more blocks.</li></ul>



<p>All that is wrapped into a function that is called after the init action. </p>



<p>One thing that caught my attention is that the contents of the pattern, essentially HTML, is defined inside the PHP file instead of a pure HTML file. I believe that’s for dynamic content (e.g. translations, dynamic URLs). There are <a href="https://github.com/WordPress/gutenberg/pull/36751">plans to change how that works</a> and make it a better developer experience, though! Stay tuned. </p>



<p><em>The <a href="https://gutenbergtimes.com/the-wordpress-block-patterns-resource-list/"><strong>WordPress Block Patterns Resource List</strong></a> has a lot more information about Block Patterns. </em></p>



<h2 id="putting-it-all-together"><strong>Putting it all together</strong></h2>



<p>Next Gutenberg kicks in. It is the glue that applies the theme definitions, its overrides, and injects the blocks into the used templates.</p>



<p>When you override a global style that is defined in theme.json or by WordPress core, a new post with the <code>wp_global_styles</code> type is created. The differences from the original global styles are&nbsp;saved as a custom post type. Here’s what happens when you modify global typography settings:</p>



<p class="has-secondary-color has-light-background-background-color has-text-color has-background has-normal-font-size">MariaDB [wordpress]&gt; <br /><code>select post_content </code><br /><code>from wp_posts </code><br /><code>where post_type = 'wp_global_styles';</code></p>



<table><thead><tr><th>post_content&nbsp;</th></tr></thead><tbody><tr><td>{&#8220;styles&#8221;:{&#8220;typography&#8221;:{&#8220;fontSize&#8221;:&#8221;var:preset|font-size|huge&#8221;}},&#8221;isGlobalStylesUserThemeJSON&#8221;:true,&#8221;version&#8221;:2} </td></tr></tbody></table>Result set for above SQL statement



<p>Blocks are defined as HTML comments, such as:</p>


<pre class="wp-block-code"><div><code class="hljs language-htmlbars shcb-code-table shcb-line-numbers"><span class="shcb-loc"><span><span class="xml"><span class="hljs-comment">&lt;!-- wp:spacer {"height":112} --&gt;</span></span>
</span></span><span class="shcb-loc"><span><span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">style</span>=<span class="hljs-string">"height:112px"</span> <span class="hljs-attr">aria-hidden</span>=<span class="hljs-string">"true"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"wp-block-spacer"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span></span>
</span></span><span class="shcb-loc"><span><span class="xml"><span class="hljs-tag"><span class="hljs-tag"><span class="hljs-comment">&lt;!-- /wp:spacer --&gt;</span></span></span></span>
</span></span></code></div><small class="shcb-language" id="shcb-language-8"><span class="shcb-language__label">Code language:</span> <span class="shcb-language__name">HTMLBars</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">htmlbars</span><span class="shcb-language__paren">)</span></small></pre>


<p>The first part defines the block name, and the object inside the comment stands for the block properties. From there, you can add, modify, and delete blocks inside the editor. The changes are saved within the chosen template. The contents that are “wrapped” by comments are the actual markup bits that are rendered on the live site. Of course, those comments are filtered away before the content hits the site&#8217;s front end.</p>



<p>When modifying the contents of a template (i.e. adding, removing, or modifying blocks), you get a full copy of the template as a new post with the wp_template type, along with all your changes. When changes are cleared, meaning the template is reverted to its original form, the post is deleted and the original template is used instead.</p>



<p>When a user modifies a block that also touches a WordPress General Setting options, like the for “Site Title” block, the site_title option is also updated in the options table.&nbsp;&nbsp;</p>



<div><div class="wp-block-group__inner-container">
<p>MariaDB [wordpress]&gt; <br /><code>SELECT option_value </code><br /><code>FROM wp_options </code><br /><code>WHERE option_name = 'blogname';</code></p>
</div></div>



<table><thead><tr><th>option_value &nbsp; </th></tr></thead><tbody><tr><td>This is changed from the editor!</td></tr></tbody></table>



<p>The same thing happens for posts. When you change the contents of a Post Title block, the post itself is changed. Imagine the following post, inside the site editor:</p>



<img src="https://lh5.googleusercontent.com/meKd3Z9QoH3Q8HeKepMyLqRfaXOsPKY-nNiyTCtPoJkXgw8bTn5nhopwcoY6yt4qFmR6zDXyP5FLb2aN1gChFRKS2SDzIL6j4MyVw8wnt4bARx4AVyV6sEiBrWq-pPkJBL-FZgin" alt="" />



<p>When you change “Hey there!” to “Something else”, that’s what you would get inside the tables:</p>



<div><div class="wp-block-group__inner-container">
<p>MariaDB [wordpress]&gt; <br /><code>SELECT post_title <br />FROM wp_posts <br />WHERE post_type = 'post';</code></p>
</div></div>



<table><thead><tr><th>post_title</th></tr></thead><tbody><tr><td>Something else</td></tr></tbody></table>



<p>Pretty magical ✨ </p>



<p><em>On a side note: I’m uncertain whether it is a good option to let such changes happen. People might mistakenly assume that this is part of the template and not part of the post itsel</em>f.</p>



<p>After the changes are saved and the site looks how the user wants, it’s rendering time!</p>



<p>The following paragraphs are an oversimplification of the process, but they should give you a nice overview.</p>



<p>First thing, the <code>gutenberg_maybe_inline_styles()</code> function is enqueued within <code>wp_head</code> and <code>wp_footer</code> actions so that styles are injected. This is where most of the styling, including block styles, global styles, and their overrides are applied. Something similar happens for scripts and external stylesheets. Note that, at this moment, CSS is not yet sent to the browser.</p>



<p>Then, <code>gutenberg_add_template_loader_filters</code> hooks into the <code>wp_loaded</code> action. Inside that function, a for-loop enqueues a filter that runs for every possible template:</p>



<p class="has-border-background-color has-background"><code>add_filter( str_replace( '-', '', $template_type ) . '_template', 'gutenberg_override_query_template', 20, 3 );</code></p>



<p>Note how it calls <code>gutenberg_override_query_template</code> as a target. Inside it, the corresponding template for the page the user is requesting is resolved and the <code>template-canvas.php</code> file is returned as the result of the filter. That file is the final bit:</p>


<pre class="wp-block-code"><div><code class="hljs language-php shcb-code-table shcb-line-numbers"><span class="shcb-loc"><span><span class="hljs-meta">&lt;?php</span> $template_html = gutenberg_get_the_template_html();<span class="hljs-meta">?&gt;</span>
</span></span><span class="shcb-loc"><span>&lt;!DOCTYPE html&gt;
</span></span><span class="shcb-loc"><span>&lt;html <span class="hljs-meta">&lt;?php</span> language_attributes(); <span class="hljs-meta">?&gt;</span>&gt;
</span></span><span class="shcb-loc"><span>    &lt;head&gt;
</span></span><span class="shcb-loc"><span>        &lt;meta charset=<span class="hljs-string">"&lt;?php bloginfo( 'charset' ); ?&gt;"</span> /&gt;    
</span></span><span class="shcb-loc"><span>        <span class="hljs-meta">&lt;?php</span> wp_head(); <span class="hljs-meta">?&gt;</span>
</span></span><span class="shcb-loc"><span>    &lt;/head&gt; 
</span></span><span class="shcb-loc"><span>    &lt;body <span class="hljs-meta">&lt;?php</span> body_class(); <span class="hljs-meta">?&gt;</span>&gt;
</span></span><span class="shcb-loc"><span>        <span class="hljs-meta">&lt;?php</span> wp_body_open(); <span class="hljs-meta">?&gt;</span> 
</span></span><span class="shcb-loc"><span>        <span class="hljs-meta">&lt;?php</span> <span class="hljs-keyword">echo</span> $template_html; <span class="hljs-meta">?&gt;</span> 
</span></span><span class="shcb-loc"><span>        <span class="hljs-meta">&lt;?php</span> wp_footer(); <span class="hljs-meta">?&gt;</span>
</span></span><span class="shcb-loc"><span>    &lt;/body&gt;
</span></span><span class="shcb-loc"><span>&lt;/html&gt;
</span></span></code></div><small class="shcb-language" id="shcb-language-9"><span class="shcb-language__label">Code language:</span> <span class="shcb-language__name">PHP</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">php</span><span class="shcb-language__paren">)</span></small></pre>


<p>As shown inside the code, it calls <code>gutenberg_get_the_template_html</code>. That function does a few things, but most importantly:</p>



<ol><li><code>do_blocks</code>, which grabs all blocks, parses them and return their content;</li><li><code>wptexturize</code>`, to escape all special characters into their safe HTML entities.</li></ol>



<p>And that’s it! <code>gutenberg_get_the_template_html</code>‘s result gets echoed inside the &lt;body&gt; tag, wp_head and wp_footer functions render their respective content and voilà: your page gets loaded!</p>



<p>That’s how FSE with Gutenberg works, in an oversimplified way in January 2022.</p>



<h2 id="resources">Resources</h2>



<ul><li><a href="https://kinsta.com/blog/twenty-twenty-two-theme/">A Deep Dive into Twenty Twenty-Two and WordPress Block Themes</a></li><li><a href="https://make.wordpress.org/core/2022/01/07/theme-focused-changes-and-filters-in-wordpress-5-9/">Theme-focused changes and filters in WordPress 5.9</a></li><li><a href="https://make.wordpress.org/core/2022/01/07/state-of-the-customizer-with-block-themes-in-wordpress-5-9/">State of the Customizer with block themes in WordPress 5.9</a></li><li><a href="https://make.wordpress.org/core/2022/01/04/block-themes-a-new-way-to-build-themes-in-wordpress-5-9/">Block themes, a new way to build themes in WordPress 5.9</a></li><li><a href="https://make.wordpress.org/core/2022/01/08/updates-for-settings-styles-and-theme-json/">Updates for Settings, Styles, and theme.json</a></li><li><a href="https://fluffyandflakey.blog/2017/09/04/gutenberg-posts-arent-html/">Gutenberg Aren&#8217;t HTML by Dennis Snell</a> </li></ul>



<p><em>Big Thank you to Daisy Olsen, Kjell Reigstad, and Jeff Ong for their review of this post. </em>&nbsp;</p>



<p></p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 05 Feb 2022 02:05:00 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:19:"Luis Felipe Zaguini";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:49;a:6:{s:4:"data";s:13:"
	
	
	
	
	
	
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:111:"WPTavern: CMS and E-Commerce Churn Data Shows WordPress Maintaining Market Lead, Shopify Gaining on WooCommerce";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:30:"https://wptavern.com/?p=129527";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:121:"https://wptavern.com/cms-and-e-commerce-churn-data-shows-wordpress-maintaining-market-lead-shopify-gaining-on-woocommerce";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3252:"<p>Rick Viscomi, one of the maintainers of the HTTP Archive, <a href="https://twitter.com/rick_viscomi/status/1486951830328389635">tweeted</a> some interesting data from a report he is working on that tracks churn for different JavaScript frameworks and CMS&#8217;s over a specified period of time. He detected  the changes using the open source <a href="https://www.wappalyzer.com/">Wappalyzer</a> project. The first graph he shared shows shows data from 8 million websites, 12 months apart for any that changed tech stacks, visualizing the movement to/from frameworks. </p>



<p>A large chunk of the 32K+ sites that migrated to React came from Handlebars.js, Mustache, and Ember.js.</p>



<div>
<blockquote class="twitter-tweet"><p lang="en" dir="ltr"><img src="https://s.w.org/images/core/emoji/13.1.0/72x72/1f440.png" alt="?" class="wp-smiley" /> Working on a new thing with <a href="https://twitter.com/HTTPArchive?ref_src=twsrc%5Etfw">@HTTPArchive</a> data.<br /><br />Checking 8M websites 12 months apart for any that switched tech stacks and visualizing where they're going to/from.<br /><br />React ate every other JS framework's lunch on over 32k sites. Mostly from Handlebars.<br /><br />(thread) <a href="https://t.co/iuKpzGcFs9">pic.twitter.com/iuKpzGcFs9</a></p>&mdash; Rick Viscomi (@rick_viscomi) <a href="https://twitter.com/rick_viscomi/status/1486951830328389635?ref_src=twsrc%5Etfw">January 28, 2022</a></blockquote>
</div>



<p>As the market leader, WordPress was also the recipient of quite a bit of churn from other CMS&#8217;s, primarily Drupal and Joomla, followed by Wix, Squarespace, and TYPO3. Viscomi found that WordPress picked off 9K sites from competitors but also lost ground to other CMS&#8217;s. </p>



<p>&#8220;It&#8217;s leaking quite a bit to other CMSs too, but not as much as it&#8217;s taking in,&#8221; he said.</p>



<div><img /><a href="https://twitter.com/rick_viscomi/status/1486951834732408832">CMS churn data</a> from Rick Viscomi</div>



<p>Where are sites migrating to away from WordPress? They are primarily going to Drupal, Wix, and Squarespace, followed by a wide array of smaller, less popular, but growing, website builders like Duda and Tilda. Viscomi found that WordPress is involved in 79% of these migrations, either being replaced or replacing another CMS.</p>



<p>Tracking e-commerce platform churn, Viscomi said, &#8220;WooCommerce is more or less breaking even in the trades, but Shopify is gaining a lot of ground, especially from WooCommerce.&#8221; The e-commerce space is much more competitive with Shopify right on heels of WooCommerce. </p>




<img />



<img />
<a href="https://twitter.com/rick_viscomi/status/1486951843825688580">E-commerce churn data</a> from Rick Viscomi



<p>It would be interesting to get an overview of the most popular sites that moved to a new platform and dig in deeper on why their engineering teams decided to make the move.</p>



<p>Viscomi said his data ignores any technologies that were not detectable in January 2021, as well as any site that removed a technology without a replacement from the same category. He plans to share all of the queries with an interactive version of the charts in an upcoming post on the HTTP Archive.</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 04 Feb 2022 23:13:26 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}}}}}}}}}}}}s:4:"type";i:128;s:7:"headers";O:42:"Requests_Utility_CaseInsensitiveDictionary":1:{s:7:"*data";a:8:{s:6:"server";s:5:"nginx";s:4:"date";s:29:"Wed, 23 Feb 2022 08:34:54 GMT";s:12:"content-type";s:8:"text/xml";s:4:"vary";s:15:"Accept-Encoding";s:13:"last-modified";s:29:"Wed, 23 Feb 2022 08:15:07 GMT";s:15:"x-frame-options";s:10:"SAMEORIGIN";s:4:"x-nc";s:9:"HIT ord 2";s:16:"content-encoding";s:4:"gzip";}}s:5:"build";s:14:"20211221010300";}