Wordpress News

BuddyPress: BP Rewrites 1.1.0 Maintenance Release

Wordpress Planet - Sun, 05/01/2022 - 16:39

Immediately available is BP Rewrites 1.1.0. This maintenance release fixes two bugs. For details on the changes, please read the 1.1.0 release notes.

Update to BP Rewrites 1.1.0 today in your WordPress Dashboard, or by downloading from the WordPress.org plugin repository.

Many thanks to 1.1.0 contributors 

shawfactor & imath.

Gutenberg Times: Gutenberg Changelog #66 – Gutenberg 13.1, New Zealand, InnerBlocks

Wordpress Planet - Sun, 05/01/2022 - 03:43

Birgit Pauli-Haack and Mary Job discuss with their guest, Glen Davies, Gutenberg 13.1, New Zealand, InnerBlocks and more so much more.

Show Notes / Transcript

Show Notes

Glen Davies on Twitter


FSE Program Rallying Recipe Reviewers

Play the Piano and Other Instruments via the WordPress Block Editor

#24 – Aki Hamano on Building Useful Blocks for Fun

WordPress Beta 3

What’s new in Gutenberg 13.1? (27 April)

Gutenberg 13.1 Ships a Batch of Improvements and Implements a New Border Design Component

Add visualizers for padding and margin for all blocks

Save theme edits from the site editor to the theme files

Persistent Preferences in User Meta

Coming in Gutenberg 13.2: Users’ Editor Preferences Will Be Stored in the Database, Improving Persistence Across Sessions

Design Share: Apr 11–22

Stay in Touch


Birgit Pauli-Haack: Hello, and welcome to our 66th episode of the Gutenberg ChangeLog podcast. In today’s episode, we will talk about Gutenberg 13.1 version, New Zealand, inner blocks in an interesting work in progress with our special guest, Glen Davies. I’m Birgit Pauli-Haack, curator at the Gutenberg Times and a WordPress developer advocate. And I’m here with my lovely co-host Mary Job. She’s also a WordPress advocate, works as support engineer at Paid Membership Pro and is a community organizer at wpafrica.org. And today we also have a special guest. I’m thrilled to welcome Glen Davies to our show. He’s from New Zealand, a JavaScript engineer on the Gutenberg project and the release lead for the Gutenberg plugin 13.1 version. Good evening, Mary, top of the morning to you, Glen. And thank you both for joining. How are you today?

Glen Davies: Good, thanks.

Mary Job: Yeah, I’m fine too Birgit. Nice to see you. Nice to meet you, Glen.

Glen Davies: Yeah, likewise.

Birgit Pauli-Haack: Awesome. Awesome. So Glen, before we go into the weeds of the plugin release and the rest of the show, I want to ask you a couple of questions about your WordPress journey and about your work on the gallery block. And maybe you can briefly tell us how you came to WordPress and automattic.

Glen Davies: Guess I came to automattic and then to WordPress.

Birgit Pauli-Haack: Oh, okay. The other way around.

Glen Davies: I had used WordPress quite a few years ago. I was an IT manager for a not for profit for a few years and they needed a blogging platform. So I installed WordPress for them. But that was mostly from a tinkering setting up point of view rather than development. They didn’t really need a lot of development, just a pretty simple blog. Prior to that, I’d done quite a bit of PHP development. I developed an open source learning management system for a university. I don’t know if you’ve dealt with LMSs, you’ve probably heard of something called Moodle.

Birgit Pauli-Haack: Oh yeah, yeah.

Glen Davies: Yeah, yeah. But that wasn’t the LMS I developed.

Birgit Pauli-Haack: It was similar.

Glen Davies: Yeah. Well, the one I developed, I probably say mine was the beta max to Moodle’s VHS. So Moodle sort of… Moodle got the community and mine never did. At one point I said to the university they were wasting their money paying me to be the sole developer of an open source LMS. They should really use Moodle instead. So I sort of did myself out of a job.

I was ready for a change. I did IT management for a while and that’s when I first encountered WordPress. Decided that IT management wasn’t really for me. So I went back to development for a couple of big corporates. But got a bit sick of the commute and the crammed office spaces. I think the last office I was in there was a person a meter and a half that side and the meter and a half that side and a meter behind me was other three people. You had to say, “excuse me” when you pushed your chair out to go to the bathroom.

So I had a bit of a look around about three years ago for remote work positions and Automattic came up and looking through the Automattic CRE, just the whole philosophy and culture really, rang true for me. So I took a punt and applied and managed to get a position. That was, yeah, about three years ago.

Birgit Pauli-Haack: Oh, wow. Yeah. So that is in the middle of the new development of Gutenberg pretty much. Yeah.

Glen Davies: Yeah. It was some of the early releases was sort of going out.

Birgit Pauli-Haack: That kind of brings up the question that I had, or that a lot of people had, is how do you migrate or how do you become, get, from a PHP developer to a JavaScript developer or a mixed to, for the Gutenberg blocks and custom blocks and all that?

Glen Davies: Yeah, for me, it wasn’t… Cause I said years ago I did a lot of PHP, but then when I came back to development, I went almost straight into just JavaScript front end. It was just a big learning curve of diving in. So for me coming to Automattic and WordPress, it was almost the reverse I had to go back from doing JavaScript to some PHP stuff.

Birgit Pauli-Haack: Oh yeah. Okay. I get that. Yeah. All right. Yeah. Did you have contact with other people in the workers community in New Zealand?

Glen Davies: No. Cause unfortunately I started 2019. I spent the first eight or nine months just really getting to grips with WordPress and then of course COVID hit. So I’m hoping this year, New Zealand, like most countries has opened up quite a bit. So hopefully there’ll be some local WordPress events I can get along to.

Birgit Pauli-Haack: Yeah, hopefully. I hope that for you too. Yeah. Cause you’re probably not coming to work in Europe.

Glen Davies: No, not this year.

Birgit Pauli-Haack: Yeah. There’s actually a good friend of the Gutenberg Times, so to speak, Ellen Bauer. She is the owner of the Elmer Studio and with her significant other Manuel they have quite a few themes in the… And she’s was one of the early adopters of Gutenberg as well as the block themes. I’m not quite sure how far away you were, but yeah. She’s definitely, she migrated to New Zealand a long time ago. Yeah.

Glen Davies: Yeah, no. It would be good to catch up with some local events this year.

Birgit Pauli-Haack: Yeah. Well keeping the fingers crossed that that’s possible. So you and me, Glen, we collaborated a little bit on the working on the gallery block of trying to figure out how to let the community know that they were be a change. And you converted the first version, which came out 2018, had not particularly been developed much after that. And it now uses a single image block within blocks and it came to WordPress school in 5.9 in January. So it’s such a richer experience and has all the features that the image block has, is now coming to gallery block and you can kind of change each image or… And also you have the styles for it. I had the feeling that the journey wasn’t particularly easy one, from especially around backwards compatibility blocks and deprecating blocks. What did you learn and what advice would you give developers working on version two for the list and the quotes and the developers building custom blocks?

Glen Davies: Well, I learned that it’s not as easy as it looks.

Birgit Pauli-Haack: That’s life for you, right.

Glen Davies: There were a whole list of open issues of people saying, “oh, we need the gallery to be able to do this.” And, “in an image in a gallery, we need to be able to do that.” And I sort of looked and thought, well, you can already do that on the image block. So why aren’t we just wrapping the image blocks rather than… Cause there was almost a whole lot of copy and pasted code to duplicate stuff between images and the gallery. I thought I might as well have a go and see whether we could use inner blocks. Which the initial setup was pretty straightforward, but yeah, there were a whole lot of gotchas in actually getting it to run properly.

And then when we looked at the backwards compatibility, the main issue we had was with the mobile app. So the big learning was just how different the Gutenberg editor in the mobile app is from the web editor. In terms of the fact that you have a whole lot of different versions of the editor out running in people’s apps that haven’t been upgraded. And currently the editor has no way of knowing what to do with a block it hasn’t encountered before. So in the mobile app, it would get the gallery that had inner blocks and think there’s no content, cause it didn’t recognize blocks. And Android quite nicely, or it was thought it was being quite nice in auto saving as soon as it opened it.

Birgit Pauli-Haack: Overriding whatever’s there, yeah.

Glen Davies: Yeah. Would say, oh, it’s a gallery. There’s nothing in it, save. And it would lose all the people’s images. There was a lot of working with the mobile team to work out, how do we stage deploying the new version so that people on the mobile app don’t lose their data. Yeah, one of the big learnings was just the issues with compatibility. In the meantime, Dennis, I think you had Dennis on the podcast a few weeks ago. He’s done quite a bit of work to make the editor a bit more robust to be able to cope with blocks it doesn’t recognize. So rather than just losing the data, just say, hang on, I don’t recognize this. I’ll just ignore it for now and leave it as it is.

Birgit Pauli-Haack: Yeah. Just display what I have and then yeah, the plain HDML. So yeah.

Glen Davies: Yeah.

Birgit Pauli-Haack: Yeah.

Glen Davies: So hopefully it’ll slowly start to ease, but I know the quote block people have the… The developers that have converted quotes to inner blocks have had the same issue with mobile. Cause they’ve had to stage the deployment so that the mobile versions don’t lose the data.

Birgit Pauli-Haack: Yeah. Interesting. Yeah.

Glen Davies: Yeah. One of the other big learnings was just how well the whole community works together. It’s like, it’s… It was a pretty big change but it wasn’t too hard to get the people that needed to be involved, involved, and work through the issues together. And then paying the likes of yourselves to say, we need to let the community know. And knowing that you took that bit on board and paying the relevant developers and let them know.

Birgit Pauli-Haack: Yeah. And it was interesting to see that most of the theme developers that are plugin developers and also theme developers that I reached out to, they already were aware that there’s something coming and there were testing quite a bit on the Gutenberg plugin. Yeah. So when it came to 5.9, there were no surprises on that, not that particular on that part. Well, but we were not able to reach all of the people, but I think it was a good chunk of it. Yeah.

Glen Davies: Yeah. I held my breath when the 5.9 release went out.

Birgit Pauli-Haack: Say that again.

Glen Davies: I held my breath when the 5.9 release went out. I thought, oh, I hope this is going to work.

Birgit Pauli-Haack: Yeah.

Glen Davies: It’s a pretty block. There’s a lot of people use gallery blocks. So it was a bit nerve racking pushing out such a major change, but it seems to have gone reasonably smoothly.

Birgit Pauli-Haack: Yeah. The backwards compatibility and on the desktop version or on the web version. Yeah. That was quite nicely. I was really pleasantly surprised that what I can do in addition what I was doing already on the gallery block. So it was a very pleasant surprise.

Mary Job: Yeah. I think I have a question for Glen if you don’t mind.

Birgit Pauli-Haack: Sure.

Glen Davies: Yeah, sure.

Mary Job: As you said you came into WordPress three years ago. Would you say coming from all that kind of development into WordPress, would you say WordPress has a steep learning curve or was it like smooth?

Glen Davies: Yeah. Reasonably steep learning curve. Cause although it’s Java script and react, which I’d used before, there’s a reasonable amount of complexity in Gutenberg. It’s a pretty impressive project when you look at the depth and the breadth of it, what it’s actually doing. Even having worked on it for three years, there’s some parts of Gutenberg that are just a black box to me. Yeah. There’s parts I haven’t had to touch and I’ve got no idea what they’re doing. And if I had to actually do some debugging in that area, there’s quite often quite a bit of work to think what’s actually happening here, what’s going on.

But having said that, think it wraps really well some of that complexity. And then allows the block developers to do an awful lot of fairly clever stuff with a minimal amount of work. For instance, the new block supports are fairly impressive. Previously, if you wanted to have borders and background colors and text colors, you had to copy and paste a whole lot of code. Now it’s just a matter of adding a few flags to your JSON file and suddenly your block has borders and background color and text color.

Birgit Pauli-Haack: Yeah. That’s pretty impressive. I really love the development on the theme JSON file and all the configuration that goes in there. And it works very well with classic themes as well. So it’s a really good way how that works.

Glen Davies: It’s sort of an interesting mix of complexity and simplicity. There’s some really complex stuff going on in the background, but it’s been wrapped quite well to a nice, simple API for block developers.

Birgit Pauli-Haack: Yeah. Do you have another question, Mary?

Mary Job: No, no, no. I was just thinking how impressive that is.

Birgit Pauli-Haack: Yeah. Well, let’s get started with the rest of the show. It’s so glad you’re here. 


So we have one announcement that just made it in. If you want to test the features that are in Gutenberg 13.1, head over to the latest call for testing from the FSE, from the full site editing program. And it’s called ‘Rallying Recipe Reviewers’. And this call for testing focuses on, on taking a few blocks amongst on the list view in this and the quote blocks in the second version and practically spin it up with fun for interactive recipe focused site. Where you can customize the commenting experience. And for a very interactive site. The instructions are from Anne McCarthy again. It’s the 14th of these testing calls and they are very detailed and they get you really into the topic of things. It just was published yesterday. You have about three weeks to comment on this and try it out. Of course, as always, the link to the post will be in the show notes. And yeah. So that’s the announcement for today. What else do we have?

Community Contributions

Mary Job: Oh, we have community contributions. So our fellow WordPress podcast Nathan Wrigley over at Jukebox podcast talked to Aki Hamano who is a plugin and freelance developer from Japan. Hamano also has some great blocks in the repository. Three years ago, he created a rich text expansion plugin when Gutenberg only had rudimentary color spacing and controls.

And he also has a flexible table block. So he also has this amazing block plugin, piano block, which I actually just tried today and it was fun. I didn’t want to leave the post editor. What this does is it adds a musical instrument to your editor screen and you can take a break from content version and make some music in between. And this block doesn’t show anything on the front end, which makes it a really fun project. Have you tried that plugin Birgit or Glen? I thought it was fun.

Birgit Pauli-Haack: I have not tried it but Justin Tadlock actually wrote a separate blog about it a month or so ago, blog post about it. And he has a video where he tried to do a music thing. And I’m not saying which one, because you might want to go there and kind of try it out.

Mary Job: What about you, Glen? Have you tried it?

Glen Davies: No, I haven’t tried it. I did see the WP Tavern article about it. Yeah, I must give it a go. Yeah.

Birgit Pauli-Haack: Yeah.

Mary Job: Yeah. I saw today and I didn’t want to stop playing. I felt like a genius. You know those saying, is it all work and no play makes Jack do… I remember that when I saw that I was like, ah, yes.

Birgit Pauli-Haack: Yeah. And sometimes when you’re stuck on developing or trying to write something and you distract yourself and you come back, it’s coming there.

Mary Job: Yeah, it makes very profit break time. Because there are times when you are stuck, like, okay, it’s not working. And then I just want to take a walk. I mean I could take a break and then play some piano.

Birgit Pauli-Haack: All right.

Mary Job: On the podcast, Nathan and Aki also talked about what the developer journal learning and building blocks was like. As always, we’re going to put the link to this and the show notes so you can always read. It was quite entertaining listening to them.

What’s Released – WordPress 6.0 Beta 3 and Gutenberg 13.1

Birgit Pauli-Haack: Great, yeah. So the brings us to the section what’s released? And so we had two releases. One was WordPress Beta 3. Do you want to talk about it Mary or?

Mary Job: Oh yes.

Birgit Pauli-Haack: The notes.

Mary Job: The Beta 3 release comes with a few bug fixes that was discovered in the previous betas. It now has the power down version of Workfront API. I believe we’ve talked about this in past episodes. Which allows team developers to register team star versions, including typography with their team.JSON file.

Birgit Pauli-Haack: Yeah. We talked the last episode where it wasn’t clear if the fonts API actually would make it into 6.0.

Mary Job: Yes. So the team is working tirelessly to bring all the notes to the field guide and least order interesting changes in time for the release candidate that will be coming on the third of May. And just in case you’re wondering, WordPress 6.0 is scheduled to come to you, WordPress on the 24th of May, 2002. I’m quite excited to try it out and see what new exciting features it brings.

So WordPress in 6.0 is not as big as 5.9, but it has a lot of exciting new features. Anne McCarthy also published a video with highlights on YouTube if you want to check that out.

Birgit Pauli-Haack: Yeah. And we talked about it two weeks ago and what our favorite features are. Glen, do have a favorite feature for the 6.0 version?

Glen Davies: Can’t think of anything off the top of my head. There was so much 5.9 and I’ve been doing a bit of background stuff.

Birgit Pauli-Haack: Yeah. I really like, and I haven’t looked at it before, but I’ve found that there are actually quite some writing experience improvements in there. 

Glen Davies: Yeah, actually, now that you mentioned that the partial block selection is probably it, yeah. There’s been so many times over the last few years where that’s come up as you can’t select partial blocks. 

Birgit Pauli-Haack: Yeah. If, if you want over two paragraphs or something like that, and want to have something italic or bold that is half a sentence above and the other half below, you couldn’t do that and it’s now possible and you can do all of it. That’s one of the things. And the other one is the double bracket short code to have a list of all the posts or pages that are on your site to link to it, to do inner links. That is actually quite nicely done. But we will talk about it when it’s out again. You will find quite a few things will be published right around that. The about page and then marketing is working on their releases for that.

We also had the Gutenberg 13.1 release. It was released on yesterday, also April 27th, and release lead Glen Davies. Thank you so much. How is that release experience when you do it as a developer?

Glen Davies: Oh, it was my first time at it so I was sort of a newbie. Luckily the documentation’s pretty straightforward and I was sort of lucky that it was a reasonably small release. Because 13.0 was the release that went into WordPress six. So doing the release, that’s going to go into the WordPress, call releases, usually a big job. I was lucky I got the one just after that.

Birgit Pauli-Haack: And I think only a few PRs were backboarded to 6.0. There were still some buck fixes or so. 


So what brings… We have definitely someone had enhancements coming, even it’s a small release, but it’s the design tools for borders. There’s a new border control component in the block support thing. So it can also be configured with the theme.JSON for individual blocks, like the column blocks you can have in your theme.JSON settings for the blocks. You can say a standard, a variation, on the border configuration, which is really nice. There is also for the duotone. There are two things for duotone on… There’s a new icon for the filter on the image block. And the other one was that the duotone’s now render in the site editor when you use it on the placeholder. So if you have a featured image placeholder or other media and text placeholder or something like that and use the duotone for it will show you in the editor as well.

Mary Job: The block library also had some enhancements. I’m excited about the comments, the fact that you can now style the comments area, because I know in the past, when I first started creating WordPress sites people would tell you, ah, no, the comments section is too boring. Can you like make it brighter? Or can you change? So this is actually interesting because you don’t have to use third party. Well, you can still use them if you want. But having it in Chrome means that you don’t have to go allowed to start a comments area on blog post. The category section also had an enhancement. There’s now an option to show or how I entered categories previously in the past. If her category has no post, it was eating. But now you can now choose to show or hide categories that are empty. So that’s also interesting. Yeah. This particular one, this, the styles, this enhancement styles. I didn’t quite get this. You mentioned duotone tone earlier. Can you expand on this one? Because I tried reading about it, but I wasn’t quite sure what it was referring to here.

Birgit Pauli-Haack: Yeah. You can do a preset for the dual tone in the theme.JSON. so when you have a duotone filter for the image, you can set that with a theme.JSON is and reference foreground and secondary for instance, since colors. So you can. That only that is available. A lot of people have real stomach ache when they envision that people who edit a site can come up with all different kind of crazy combination for the duotone or for the gradient. Having a way to standardize that for a whole site that is now in the theme.JSON You can switch off the duotone settings then for the editor, but still have duotone settings for the images if you allow that. Does it make sense?

Mary Job: Yes. Yes.

Birgit Pauli-Haack: Okay, good. Yeah. Some on the other styles changes, there were all a little bit more cosmetic. Do you have anything that you want to point out there Glen or Mary?

Glen Davies: Probably just highlighting again, what you’ve already mentioned that the borders, it’s great that there’s now the ability to set each of the borders separately. Both in the U both in the UI and in the theme.JSON.

Birgit Pauli-Haack: Yeah. Did you test this specifically as well? Because I have a question on it and there was a question that’s actually on the release post, is there a way to also get some styles in there, like a double or outset or dotted line in that?

Glen Davies: Yeah. So you can change it to solid dotted. Adding it to columns is quite good I think, cause it’s quite a good showcase of it. Because columns is an obvious place where you only want one border as a division between each of the columns.

Birgit Pauli-Haack: Yeah.

Glen Davies: So I think it was quite a good block to get that into to sort of showcase 101 borders and its specific edge.


Birgit Pauli-Haack: Absolutely, yeah. And then there were also quite a few changes, accessibility improvements, that included the resolve around the focus loss problems that have been experienced for the installing blocks, from the directory or creating pages from a link. Or there were quite a few situations where all of a sudden the block editor would lose focus and a screenwriter wouldn’t know where to be and how to handle that. And so that there have been quite a few fixes there. 


And then documentation, what I saw was that you fixed some of the… Was it in this release that you, Glen, wrote about the deprecated locks that you fix up the documentation for that. Was this for this release?

Glen Davies: No, I think there was a couple of releases ago.

Birgit Pauli-Haack: Yeah. Okay. But that definitely helps some of the developers to figure out how to deprecate the versioning for static blocks you, which is still a little bit cumbersome.

Glen Davies: Yeah. That was one big learning from the gallery block that forced me to work out how deprecations work. And that’s slightly different there how duplications and migrations work in software in general. 

Birgit Pauli-Haack: Yeah. And I wish they had kind of written a blog post about your learning and the frustrations about it because I think that’s what a lot of developers have in the community as well.

Glen Davies: Yeah. Maybe I might, might take the time to do that. Yeah. Our team’s set up a blog to try and document some of our experiences. So perhaps I’ll take the time to go back and go through that. There is some discussion about improving the duplication migration process.

Birgit Pauli-Haack: Yeah. But there’s nothing yet kind of that surface that trade.

Glen Davies: No, there’s, there’s an issue and there’s a bit of discussion about it. An agreement that’s a little bit confusing,

Birgit Pauli-Haack: A little bit confusing. I think that’s the understatement of the year.

Glen Davies: Yeah.

Birgit Pauli-Haack: You’re not English, are you?

Glen Davies: Yeah.

Birgit Pauli-Haack: Yeah. No, but there were quite a few documentation updates in this release. one was about the new ancestor property for the block meta data. And the other one was about the inserter argument for the patterns where you can hide patterns that are with your theme to set the inserter setting to false, then users won’t be able to find the pattern in your, in the inserter, but you can still use it on tablet and tablet parts. And that is documented, it’s also documented the updates for the theme.JSON file has been updated as well as documentation around the individual block locking sections.

So if you are interested in that and want to do that’s the state of the art kind of on how that is, check out the documentation and follow the links. 

Code Quality

So in the release post to get to that code quality, is there anything that’s stood out to you that you feel, oh, that’s a neat thing.

Glen Davies: No, probably more on the testing side of it.

Birgit Pauli-Haack: The testing, yeah.

Glen Davies: Which is sort of related to code quality and that’s the migration to using playwright.

Birgit Pauli-Haack: Yeah. How is that going?

Glen Davies: That’s making good progress and it’s going to make the writing at the end to end test and debugging of them Significantly easier. So it’ll be good ones that’s completed.

Birgit Pauli-Haack: Yeah. It would be really interesting to see kind of a primer on how to use playwright and how to write the test. Not only for of course for the Gutenberg project, but definitely for contributors on the Gutenberg project, but definitely also if you want to use it also for their own project yeah. To how to get into that testing part.

Glen Davies: Yeah. Which I’m sure that’ll be coming once once the the whole migration project’s finalized and underway.

Birgit Pauli-Haack: Yeah. I can imagine there’s quite a foundational foundational work that needs to be done for that can be migrated. Totally.

I think that was… So anything we forgot? Kind of… There’s some developer experience for the local environment. Now you can have a environment and core environment variable, and I’m thinking that’s probably about the version. And then the create block scaffolding tool has been updated to fix all the warnings and errors that are reported during the scaffolding and validation. So it’s all a little nicer now. All right. Yeah.

So that concludes our session of what was released, or the session part. 

What’s in Active Development or Discussed

And we can now go and discuss what’s active in development, what’s work in progress and what people can look forward to. One is APR called a visualizer for the padding. Riad is working on that. So when you are changing the padding for a block, it shows you a visualize representation, a visual representation of that, how it looks in the editor around the block. If you say 20, how does that look? 20 pixels or one for that side. Because there’s a lot of… There’s padding, there is margin. And then there is block gaps and all those three things, if you are using that in the side bar, can be confusing. Where did I change things? And if you have a visualizer, it’s very obvious on how you change things and those changes are easily then replicated or even controlled. So that’s definitely something to look forward to. I’m not quite sure how far that is. Definitely…. Oh, it has been merged. So this will come in a 13.2 version, Gutenberg version. And it’s the same version that will have the persistent preferences and user meta. And that was horah on Twitter when one of the developers discovers that that is coming, we have all been waiting for.

What am I talking about? I’m talking about the welcome guide, popping up on all kinds of different situations. When you have a new browser, you have a new computer, you have just changed the browser settings. And here comes welcome to the block editor. You have been using it for four years and it still wants to welcome you. It was kind of an annoying thing. It’s also… That’s one of the obvious things, but the other part is also your settings for the top toolbar. When you are in the editor and you go from block to block, there’s a block toolbar. And sometimes that’s a little bit disconcerting for content editors. You can actually glue it up to the top, through the settings menu. And it was also just stored in local storage on the browser and you had to do it again over and over as well.

Now this is changing. With 13.2, those settings will be stored in the user meta data, in the database. It will remember. You go away and you come back. It will remember. And it’s yeah… Quite a few people who say, okay, it’s about time that it comes. I know why it was a little bit delayed because these are settings for the editor and there are editors. There’s a widget editor, there’s a site editor, there’s a template editor, there’s a block editor and a post editor. There are a lot of editors that first needed be unified before you could actually standardize the persistence for it. But yeah, three years ago there wasn’t a widget editor. There wasn’t a site editor. So back then, I think the developers didn’t have enough information to make that a good way to start out. So waiting was far probably a good decision to not get into technical depth with backwards compatibility promises and all that. Yes. But we’re all happy about that.

Sarah Gooding has the story already WP Tavern. We share the links, of course, on the show notes. And the last thing that I have… So there is also… So when you use a theme and you edit it with the global styles or with the styles thing, all the information is stored in the database. Only when you export it, all the changes will come into the theme.JSON. In the works is a safe theme edits from the site editor to the theme files. When it’s in a so-called developer mode, making it a little bit easier for designers to visually update a theme and then have that, and then update the theme files per se, be it the JSON file or template power or template files.

So it can be export or can be reused. But it doesn’t have to be an export. And then there will just be a safe button and you can switch it off with a development flag mode true or false. That’s also in the works. We will share the PRS for it. So you can comment on it or chime in the show notes.

Channing Ritter has updated the design share on the make block for design, and you will see some things that they’re working on with the Figma files or Figma links. One of them is also it’s the element state exploration. How can the interface look when you want to change the hover or active setting for elements like a menu or a link or something like that.

Mel Joyce says up the did some work in Block Patterns in Figma. There’s also a discussion of revising the global style panels. What I like is, or what I really pleasantly surprised on how far the work has been done, is the design for documentation and handbook pages as Stella Raella has that, has the Figma file shared with the design team. And it’s all in the design of the new news theme. I don’t know if you saw the news scene webpress.org/news has had a recent design and now all the designers are working on replicating that for the rest of workforce.org and make.org. So it’s really cool.

Anything else? Glen, do you want to… What are you working on now? Is it that you, the race is out and you’re working on certain projects?

Glen Davies: The team that I’m currently on, we’re working on global styles and design tools. So the big project we are currently working on is something called the style engine. Which is sort of a way of trying to bring together all the different styling elements of a block. Because at the moment it’s a bit… The styles in quite a few different places, particularly with static blocks, There are some that actually are applied to the static content, there’s class names that are applied, there’s inline styles that are applied. The sort of Nirvana would be that the actual static block content had very little styling actually saved within it. There would just be some meta information and the styles are then applied at the server. And it could be a lot clearer than about which styles of output with the page based on what block content was there.

At the moment, there’s a lot of redundant style content has to go with the page to cover all the possibilities of blocks that might be there. So there’s a lot of work around trying to rationalize that and say, well, let’s only output the CSS that’s actually needed for this particular page content.

Birgit Pauli-Haack: Yeah. I know that some theme developers are really having a hard time with a few block changes. Every release there is a change that they have to update their themes and either take away classes or find classes. All of a sudden it’s all overwritten, both important kind of thing.

Glen Davies: Yeah, there’s some discussions going on. There’s been some really good input from theme authors about what the difficulties they’re having. So that’s feeding in really well to this around the style engine and there’s all those ongoing questions about backwards compatibility and the API. It’s a reasonably big project. At the moment there’s sort of no definite timeframes. We have the basic style engine in place, but then we’ve got to go through the process of how do we move all of the existing blocks to use this new way.

Birgit Pauli-Haack: Styles. Yeah. This new way and what to do with the old ones.

Glen Davies: Yeah.

Birgit Pauli-Haack: Yeah. Because the static blocks, they don’t update themselves. You need to touch them before they update themselves.

Glen Davies: Yeah. It’s a needed project, but it’s a big project and it’s a matter of working out how do we stage it, rather than go away for two years and work on the style engine. By the time everything’s moved on. It’s the usual thing with software development. What are the little pieces we can do to actually keep this thing moving and release pieces along the way create a massive project that never actually completes.

Birgit Pauli-Haack: Yeah, no, I get it. But it’s good. I know there was some discussion and we had also discussed it here with the proposal from Mark Road Wiley. I think he did some foundational thinking about that and there was quite a good summary, but also the ideas that he had in terms of how that could be input or what a theme developer would need. That I think that post really informed about that to make it as close as possible for how theme developers were going.

Glen Davies: Yeah. That generated some really good discussion. And what we’ve done is split that up into about four different areas. Because there was some quite of distinct parts within that. So we’ve tried to split that into separate issues to deal with each of them separately. So hopefully some progress will be made.

Birgit Pauli-Haack: Excellent.

Glen Davies: And coming releases on this.

Birgit Pauli-Haack: Yeah. I’m looking forward to that to maybe write about things that work. I have some deaf notes that I could wrangle about soon.

Okay. So I think we are at the end of the show. Glen, if somebody wants to get in touch with you and wants to reach you, what would be the best way to do that?

Glen Davies: At glendavies.nz

Birgit Pauli-Haack: All right. And you also… Are you often on the WebPress slack community.

Glen Davies: Oh yeah. Yeah. All WebPress slack. Same. Glendavies.nz. See me there.

Birgit Pauli-Haack: Okay. Thank you

Mary Job: Before we let Glen go, I hope you don’t mind my asking. So my question again is on your background. I hope you don’t mind my asking. In my part of the world, we have a lot of people who are learning development actively. It’s like an escape over here. “Okay, if I can’t get a normal day job, maybe I can learn development and make something out of that.” If you were to meet somebody who is starting to learn development, is in their first or second year of learning, would you recommend WordPress development to such a person? Is this something you would say, okay, maybe you could actually build a career in WordPress development? Do you think that’s…? Because people are very skeptic hearing some WordPress developers like, what’s a WordPress developer. It’s not common. It’s not like everywhere as opposed to other developments languages.

Glen Davies: Yeah. I definitely recommend it particularly the likes of the Gutenberg project. So if you can get involved in the project and pick up some small issues, there’s some reasonably simple things that come through. And if you can start putting up some PRs with some simple fixes, a reasonably easy way to get into a development community. And then if you start getting some of your PRs accepted. It’s a pretty friendly and accepting developer community. There’s some other developer communities where you might put up some simple PRs and get lambasted for doing things the wrong way. But from my experience, you’re not going to get that in the WordPress community. You’re just going to generally get help and support. So I think that there would definitely be a way to actually get into development in a bigger way. Plus it’s real life and it’s a real project. So can’t help but improve your CV or your resume if you can say, “Well, I’ve been actively involved in this project for the last year and here’s the 10 PRs that I’ve had accepted and merged.”

Birgit Pauli-Haack: It’s a very good question. Thank you, Mary. And I like the answer. There’s actually a label in the Gutenberg repository that says ‘Good First Bugs’. So scouting through those or just pulling up and see if something moves you or something you were interested in is definitely, yeah. Try to pick that up. There are also other ways to start contributing to WordPress. I always have to say that it doesn’t have to be code. But if you’re a developer code is definitely one thing. But it’s also could be testing quite a bit. So there are also labels says “needs testing” means, okay, we need some more reports and what could configuration or something like that. Is that reproducible, especially for the bug reports. So the developer who picks that up has a better inkling on how to attack that. That’s also a good way to get started if you don’t know the project yet. I think doing it from the user point and tested for some bugs is definitely a good way to get in there. Yeah, definitely.

All right. Anything else? How can people reach you, Mary? Anything from your side that you want to announce and let people know, our listeners know?

Mary Job: Not a lot. We recently had a diverse speaker training group, all the meet up for the leaguers, some citizen in Nigeria, and also here. That was interesting. They had a lot of good feedback. Like I said, we’re actively trying to grow the WP Africa community. We want, I personally want to get to know people who are doing WordPress on this continent and maybe we can have chat that wordcam. 

Birgit Pauli-Haack: Yeah. And if you are listening from Africa and you want to be part of it, WPafrica.org is the website with all information about it. You can also get Mary on Twitter. MaryoJob is the Twitter handle.

As always, the show notes will be published on Gutenbergtimes.com/podcast. This is episode 66. If you have questions or suggestions or news you want us to include, send them to changelog@gutenbergtimes.com. That’s changelog@gutenbergtimes.com.

Well, thank you so much for joining us, Glen. It was a great pleasure to have you and talk to you. And thank you, Mary, for being with me again on this podcast. And it’s for me, goodbye.

Mary Job: Thank you.

Glen Davies: Goodbye.

Birgit Pauli-Haack: Goodbye. Take care.

WordPress.org blog: People of WordPress: Meher Bala

Wordpress Planet - Sat, 04/30/2022 - 09:20

In this series, we share some of the inspiring stories of how WordPress and its global network of contributors can change people’s lives for the better. This month we feature a Indian-based WordPress developer and long term contributor on how it helped her find a career and a local and global community to belong to.

WordPress is an inspiration to Meher Bala, a frontend web developer and community builder from India. From using the software as a basic website tool to helping entrepreneurs and good causes around the world fulfill their aspirations, she has overcome personal barriers and now aims to inspire others.

Meher found her vocation and learned new skills through WordPress. She also discovered a way to encourage other women to consider careers in IT. 

Opening the doors to a career in technology

As a child, Meher was diagnosed with dyslexia (difficulty in reading the written word) and dyscalculia (difficulty in comprehending numbers and mathematical functions). With the support of her parents and a tutor, she was able to overcome this learning obstacle. She developed coping techniques and a determination to work to overcome challenges as they appeared later in life.

In school, she got an opportunity to replace one subject with computer studies as an alternative. This proved to be an eye-opener to future career possibilities. 

She began to research not only what the internet had to offer but also how it worked, including the new and fascinating concepts of email and websites. Her father bought the family’s first desktop computer so she could do her research at home.

Meher’s father wanted to turn her love for computers into something that would serve her well in the future. In 2005, he enrolled her in a short computer course from a global IT training provider. The course tutor was so impressed with her performance, she was advised to enroll in a four year software development course.

That meant she had studied the software development course alongside her higher education college course. Looking back, she enjoyed the dual challenge of the degree course in commerce, and the experience prepared her well to keep learning software while working as a developer. Within three years, she had learned C#, C, C++, HTML, Java, and .NET.

After graduation, she was in a dilemma to choose between commerce and IT. What to choose? She had a compulsory one-year technology internship to complete, and her choice of focus for that year would prove to be a defining moment.

In 2009, on her birthday, Meher was offered an internship. On the first day of the internship, she was introduced to WordPress. Her initial assignment was to change the look and feel of the WordPress dashboard — in just six hours. But there was a problem – she had never worked with WordPress before!

“I stared at the whiteboard and thought that task given was impossible and difficult to meet the deadline. I wondered if my boss was joking and did not know then what you could do with WordPress as a developer and how it could slot into your toolbox. It opened my eyes.” 

Meher Bala

Meher used her research skills to know more about using WordPress. She found a plugin that would help her achieve her task. She met the deadline and it ingrained an interest that she would never lose.

Re-discovering WordPress

Five years after her initial WordPress experience, Meher was assigned to lead an international project in WordPress. She was hesitant — she had lost touch with the CMS during that five years, but the project was a great opportunity to become a team leader and lead from the front. 

She decided to update her WordPress skills, relying again on the strength of her research skills and determination. In the process, she also taught her team all about WordPress, inspiring many of those members to continue to develop their WordPress skill set.

The success of that project was a pivotal moment for Meher and a new dawn as a developer specializing in WordPress.

As a team lead, Meher soon found it was not possible to always have all the answers straight away. She found internet searches gave practical solutions—but rarely explained the theory behind it.

So she went looking for a WordPress group to help her expand the scope and depth of her knowledge.

Finding the community and its developer learning opportunities Meher enjoying being part of WordCamp Nagpur in 2017

In 2015, while browsing Facebook, Meher came across an advertisement for something called WordCamp Mumbai, an event that had taken two days before. She did a little digging to learn what a WordCamp was, and about the people behind it. She took the plunge and joined the WordPress Mumbai Meetup group.

Her first Meetup experience was not love at first sight. She felt the topics were for advanced users, and the timing late in the evening made it difficult to attend.

But a few months later, the Meetup addressed a topic that could help her resolve an issue in one of her current projects. She made the effort to show up and came away with a number of important tips. The speaker had taken the time to speak to individual attendees. When he came to Meher, she took the opportunity to ask a couple of questions about her project issues.

Thereafter she went to more Meetups and got to know the people behind this group, just as they started talking about WordCamp Mumbai 2016.

A WordCamp adventure Meher discovering WordCamps in Mumbai in 2016

Meher expressed interest in being a part of the coming  WordCamp Mumbai and started in an entry-level role with basic responsibilities.

At first, she thought WordCamp was a formal conference with about 100 people. So on the first day of WordCamp Mumbai 2016, she was surprised to see so many WordCamp enthusiasts attending and enjoying such a relaxed and friendly conference.

After that great experience, Meher went to many more meetups and did more volunteering. She started taking on responsibilities in the coming WordCamps and getting to know the different aspects of the camp. 

In the following years, at each WordPress, she took up a new role like speaker vetting, sponsors, and volunteer coordination. This allowed her to know more about what an organizer needs to do, from planning to execution, to make WordCamp a successful event.

With the team at WordCamp Mumbai in 2017

Meher is grateful for her WordPress journey which was fostered in the Mumbai community. It has been filled with beautiful surprises. 

When people ask why she’s chosen to specialize professionally in WordPress, Meher says WordPress is easy to teach a non-technical person, yet it is still highly customizable. Being a WordPress developer has given her the opportunity to work  remotely for global web development companies that let her think out of the box. And she learns new skills with every release.

The community makes WordPress special

Meher says that some of her most memorable WordPress moments have revolved around special friendships, trying new things, and participating in community building. 

WordPress has let her explore different parts of India, make new friends locally and internationally, and encourage women to be a part of meetup groups and events across India. 

One of Meher’s biggest dreams was to lead WordCamp Mumbai as a lead organizer and show others what could be achieved by working together in open source. In 2019, she did just that and has volunteered at international WordCamps and meetups since.

Taking to the stage at WordCamp Mumbai in 2019

As part of her enthusiasm for sharing the opportunities WordPress can give people, especially women, she has given time to co-organize two global WordPress Translation month long events and contributor events in India.   

Meher said: “I was first introduced to translation at one of the meetups which was organised to support the WordPress Translation Day. I realized this was another way to support my local communities and bring the power of WordPress to them by contributing in Gujarati and Hindi. I did not imagine I would a few years later be a global organizer for the event itself!”

With her commitment to ongoing learning as a developer and to model what she believes about the value and community growth opportunities of open source, Meher has given time and energy to the Marketing Team, where she has been a Team Rep, to the Training Team, and to the Core Team contributing to multiple releases. 

The developer adventure with WordPress is unlimited

At the start of my software developer journey, I always thought the C++ and Java were the only skills you required to excel in your career. From the time I started exploring WordPress in depth, I realized the potential and the power of WordPress in web development.

Meher Bala

Being a part of the WordPress community, Meher learned that there is so much more than just building blogs on WordPress. She started exploring different features of WordPress, created her first theme, and eventually specialized as a frontend specialist.

Meher now works as a consultant and front end developer with an international agency specializing in WordPress. Asked what she thought was the best thing about being a WordPress developer, Meher replied: “Through WordPress, I have an opportunity to build unique out of the box websites and work remotely for global web development companies that encourages you to think out of the box. There is always opportunity to continuously advance my coding skills and learn new techniques with every release.”

She believes that there is no limit to where using the software can take you and what you can combine it with to find solutions to projects big and small.

If you earn a living from WordPress, her advice is from the heart: try to give back to the WordPress community.

“I am sure you will learn or teach something new and definitely make friends across the world. There is no shame in making mistakes, as you can learn from them and develop your skills further. You can also help others as they build their skills.”

Meher added: “Don’t let the things you find difficult get in the way of your success.”

Share the stories

Help share these stories of open source contributors and continue to grow the community. Meet more WordPressers in the People of WordPress series.


Thanks to Abha Thakor (@webcommsat), Larissa Murillo (@lmurillom), Mary Baum (@marybaum), Chloé Bringmann (@cbringmann), and Meg Phillips (@megphillips91) for interviews, writing and image work on this story. Thank you to Meher Bala (@meher) for sharing her experiences and to Josepha Haden Chomphosy (@chanthaboune) and Topher DeRosia (@topher1kenobe) for their support of the series.

This People of WordPress feature is inspired by an essay originally published on HeroPress.com, a community initiative created by Topher DeRosia. It highlights people in the WordPress community who have overcome barriers and whose stories might otherwise go unheard. #HeroPress

Post Status: The Right Way, the Wrong Way, and the Elusive WordPress Way

Wordpress Planet - Sat, 04/30/2022 - 01:23

There are significant differences in the ways plugin owners think about and operate their businesses. This is an opportunity to learn and grow together.

I learned a lot from the community discussion on Twitter this week in response to MemberPress’s handling of users with lapsed support licenses. The specific question we started from spawned a lot of important tangents, but the main issue is really about limits — or voluntary self-limitation:

“Is it over the line for a commercial WordPress plugin to respond to a lapsed support license by locking users out of the plugin’s admin screens?”

Is there in fact a line, a standard of acceptable practice?

  • Yes, lapsed plugins should simply degrade to “free/basic” features and core business functions for e-commerce, like the ability to issue refunds.
  • No, lapsed plugins can completely shut down access to their admin/settings or even quit functioning altogether.
What is the WordPress Way?

There's an old joke in different military branches and other organizations about there being the right way, the wrong way, and the Army (or whatever) way. Our way, the way we do it here.

Read Jason Coleman's thoughtful and deeply invested view of The WordPress Way. He defines it as:

“an ever-evolving set of standards and conventions that will change over time, but basically what we mean is that our code, UI, and UX should be familiar to other WordPress developers and users interacting with our software.

Is that how you define “The WordPress Way?”

It’s not a sign of a healthy ecosystem if buyers and sellers are seriously at odds with each other.

This is an important conversation to have. There are significant differences in the ways plugin owners think about and operate their businesses in a tough market in uncertain times. Differences can seem like barriers and conflict-starters, but they are a great opportunity to learn and grow together.

Finding Common Ground

I noticed there were a few quiet (and humorous) points of agreement that may seem small, but they're important. First, attacking others’ motives is never good, but even the least relevant complaint in any marketplace — that buyers are cheap and sellers are greedy — shows what everyone has in common when frustrations run high: the sense that too much is being asked of them. That’s relatable, whoever feels it, but maligning each other's motives … we don't do that.

We can probably all agree it’s not a sign of a healthy ecosystem when buyers and sellers are seriously at odds with each other. That’s not what anyone wants.

So what are the tough realities and hard questions we need to face to get where we want to be? (Giving and growing — together.)

What doesn't work? What does? What are the most difficult dilemmas and apparent contradictions? What risks might be taken?

Lesley Sim and others involved in this discussion so far have suggested a good place to start. Admit what’s broken and what doesn’t work, what’s not sustainable. Take risks expressing challenging ideas. Value and hold all the disagreements and apparent contradictions in mind together. Be kind. Don’t demonize others.

No guarantees on outcomes, but it is a start.

And we’re asking for your involvement! Consider this a call for papers — and blog posts! (Or even Twitter threads, spaces, and conferences.)

How should we define the key issues and concepts?

Are the appropriate limits for commercial activity in the WordPress back end a UX design issue? A communication issue? An ethical issue? All of the above?

Should we view plugins (that need constant updates and support) as products, services, or something in-between? How do you educate customers to adopt the appropriate view of your software product so renewals for updates make sense?

Which plugin sales tactics work best?

Are aggressive shutdowns of potentially all functionality one of many possible sales models worth trying out? What else hasn't been tried much, or at all? How do support license renewals and marketing around them work elsewhere in Open Source? Does it kill off your user base or just free riders if you take a very aggressive approach to customer retention?

What if plugin vendors didn’t offer unlimited support with their licenses? Is this problem what we get without a WordPress “app store?” Is there another way to a win for both plugin owners and users?

This is a Call for Papers (or even short posts) that advance knowledge and understanding of a thorny issue in the WordPress community and commercial ecosystem. We need your perspectives, experiments, and the wisdom of experience you’ve accumulated. Please connect by email to submit a proposal or share a draft post for Post Status on this subject. If you've published relevant writing elsewhere, please let us know about that too. Join the Post Status Slack #tending-the-commons channel for an ongoing discussion of these and related issues.

WPTavern: James Kemp Acquires ReplyBox

Wordpress Planet - Fri, 04/29/2022 - 19:11

James Kemp, a WooCommerce developer and founder of Iconic, has acquired ReplyBox, a privacy-focused comment system. Originally built by Ashley Rich and Lewis Warren and launched in 2018, ReplyBox has struggled to gain a strong foothold in the WordPress ecosystem as a commercial product with no free version, but it has continued growing at a slow rate.

“It’s a great SaaS but the previous owner had capacity issues and had left the app in limbo with no updates and no support,” Kemp said. “We saw a number of people talking about wanting to use it and having minor issues, so I approached Ash and offered to take it off his hands.

“I’ve personally used ReplyBox before for my own site (Iconic) and already knew it was a great privacy-focused alternative to Disqus (which riddled my site with ads unknowingly!). Ash had already been looking for a buyer, and as we’ve worked together before he knew I’d be a good fit as the new owner.”

ReplyBox is positioned as a Disqus alternative product that is faster, more lightweight, and focused on privacy. Kemp said users are often attracted to the design, the ability to use Markdown, social login, and webhooks.

The system can be embedded on any website, including static HTML pages to add dynamic commenting. It also integrates with WordPress through a connector plugin that is available on WordPress.org, which has more than 400 users. Kemp said the majority of ReplyBox users are using it with WordPress because that is the audience they are best at reaching due to the current and previous owners’ backgrounds.

The deal closed earlier this month and the ReplyBox team has been focusing on forging new partnerships.

“Since taking over, we’ve seen an uptick in users and have tested compatibility with Strattic – a static WordPress site generator – the perfect candidate for ReplyBox,” Kemp said. “Joost is using it on his personal blog. We’ll hopefully be setting up WPMayor with an account, too, for their site.

The team has a few preliminary ideas for the upcoming roadmap and is reviewing past and current requests. Potential features include the following:

  • Emoji reactions
  • Pin a comment
  • Review system
  • Upvote/downvote
  • Edit comments
  • User profile links

ReplyBox is currently working on rolling out some minor improvements and feature requests and the team is first planning on adding “review” functionality so it can integrate more deeply with WooCommerce and Shopify. For now, they plan to maintain ReplyBox as a commercial-only service. Kemp said they may consider adding a free version of the service in the future but “right now it’s not a priority.”

Post Status: Post Status Notes #496

Wordpress Planet - Fri, 04/29/2022 - 16:07

Lots of WordPress core, Gutenberg, and WordCamp news this week. Are off-forum .org support requests OK? Matt: Tumblr will be open sourced. What's the WP Way?

WordPress 6.0 Beta 3 is available for testing. This beta allows theme authors to use webfonts in theme.json. In the future, it will be possible for plugins to register and enqueue webfonts through a public API. This beta also includes three new style variations for the Twenty Twenty-Two default theme.

It looks like performance improvements for taxonomies are coming to WordPress 6.0 — including term query caching and a limit on taxonomy queries.

It's officialWordCamp US 2022 will be held at the Town and Country Resort in San Diego. Seating capacity is in the thousands there, so event planners may be anticipating attendee levels comparable to 2019 and pre-COVID times.

Anne McCarthy shares her thoughts on who full site editing is for as well as the barriers she has heard lately that “prevent folks from adopting full site editing in its current state.”

Sören Wrede explains that an old Gutenberg issue will be fixed in the 13.1 release: “if you close the welcome guide once, it will not open again in another browser.”

After 13.1, users' editor preferences will be saved in the user meta table as wp_persisted_preferences.

Pascal Birchler shares an update on the Preferred Languages feature project. He's given it a good polish but needs more feedback and testing.

The first PHP Roundup update from the PHP Foundation is out and recommended if you want PHP news outside of the WordPress “bubble.”

In the US, the White House announced it is launching a “Declaration for the Future of the Internet” with over 60 global partners and countries. The Declaration's principles include commitments to “protect human rights and fundamental freedoms” and to “promote a global Internet that advances the free flow of information.”

As Andrew Blok notes, this nonbinding agreement comes in the face of rising authoritarianism.

Munir Kamal has a new app that lets you create full-page layouts using patterns from the official WordPress Patterns library. He also has a video briefly showcasing his app.

A recent tweet from Matt Mullenweg reveals there are plans to make Tumblr open source.

This morning while reading my stream i’m reminded that recently @photomatt mentioned that @tumblr will be open sourced. https://t.co/rYgiNKy0pZ

— David Bisset (@dimensionmedia) April 25, 2022

Congrats to WebDevStudios! They manage the free Custom Post Type UI plugin, and it has reached over 1 million active installs. The premium version, Custom Post Type UI Extended, now has a block that displays custom post type content.

The Nielsen Norman Group has a new report on the best fonts for online reading, but they also mention a fact that's even more interesting: “People read 11% slower for every 20 years they age.”

If you have a plugin in the WordPress.org repo that you offer support for, do you handle support requests there or outside the .org forums? Steve Stern summarizes a recent discussion about the appropriateness of fielding support requests elsewhere.

Chris Wiegman reminds us there is an RSS solution for keeping track of your Twitter followers if you decide to leave Twitter. It's a useful tool even if you don't plan to leave.

JSONhero.io looks extremely helpful if you need to search and parse big JSON files.

Jason Coleman from Paid Memberships Pro outlines his company’s mission and how it aligns with both the GPL and “the WordPress Way.”

Dark Awesome

Drupal Themes - Fri, 04/29/2022 - 11:30

Dark Awesome Theme is Mobile-friendly Drupal 8,9 Responsive theme. This theme
features a custom slider, Responsive layout and Highly Customizable. It also
support Google fonts, font-awesome and it is very good for any kind of Drupal
website. Theme allow you to change the look and feel of your Drupal site.

Dark Awesome Theme is developed with all latest technologies Drupal 8 or 9,
Stable, Font Awesome and dark-awesome js etc.

For a full description of the theme, visit the project page:

To submit bug reports and feature suggestions, or to track changes:


1. Responsive, Mobile-Friendly Theme
2. In built Font Awesome
3. Mobile support (Smartphone, Tablet, Android, iPhone, etc.)
4. A total of 6 block regions
5. Custom slider with circles background
6. Sticky header
7. Awesome Drop Down main menus with toggle menu at mobile.

Available options in the theme settings:

1. Change slider content.
2. change slider header image.
3. Change footer-first details.
4. Change footer-contact details.
5. Hide/show and change copyright text.
6. Hide/show and change social icons in the footer.
7. Hide/show and change bottom to top scroller position.

Do The Woo Community: WooBits: Plugin Saturation aka Challenges Equal Opportunity

Wordpress Planet - Fri, 04/29/2022 - 09:00

Whether it's for WordPress or specifically WooCommerce, the question is often asked, is the plugin space saturated.

The post WooBits: Plugin Saturation aka Challenges Equal Opportunity appeared first on Do the Woo - a WooCommerce Builder Community.

Post Status: WooCommerce Function of the Week: get_ip_address

Wordpress Planet - Fri, 04/29/2022 - 00:10

The get_ip_address function is useful for tracking visitors who aren't logged in as they move through key pages in your store.

Whether it's for troubleshooting payments, creating user history logs or enabling custom geolocation, there is a WooCommerce function that lets you forget about all the $_SERVER global keys and gets you an immediate result: the current user's IP address.

You can store an IP address in a custom field or use it to trigger another custom function. Bear in mind, IP addresses are personal identification data and therefore regulated by the GDPR: “That means that some form of justification like user consent would always be needed as soon as the IP address is processed.”

So, let's take a look at the function code, its usage, and a case study.

Function code

The function get_ip_address can be found under \woocommerce\includes\class-wc-geolocation.php:

/** * Get current user IP Address. * * @return string */ public static function get_ip_address() { if ( isset( $_SERVER['HTTP_X_REAL_IP'] ) ) { return sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_REAL_IP'] ) ); } elseif ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { // Proxy servers can send through this header like this: X-Forwarded-For: client1, proxy1, proxy2 // Make sure we always only send through the first IP in the list which should always be the client IP. return (string) rest_is_ip_address( trim( current( preg_split( '/,/', sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) ) ) ) ); } elseif ( isset( $_SERVER['REMOTE_ADDR'] ) ) { return sanitize_text_field( wp_unslash( $_SERVER['REMOTE_ADDR'] ) ); } return ''; }

First of all, notice it's a function inside a class, WC_Geolocation, so it can't be called in the usual way by simply typing its name — we also need to reference the class.

Other than that, the function checks for several $_SERVER key/values, and based on whether they are set or not it returns the IP address as a string e.g. “123.456.789.0.”

As a developer, I have no intention of understanding the difference between $_SERVER['HTTP_X_REAL_IP'], $_SERVER['HTTP_X_FORWARDED_FOR'], and $_SERVER['REMOTE_ADDR']. All I care about is the final result, so that I can speed up my custom coding operations.

Function usage

As I mentioned earlier, the function can be called with the following statement:

WC_Geolocation::get_ip_address(); // CORRECT

Because it's a function inside a class, the class must be specified. Calling this in your custom snippet or plugin would throw an error:

get_ip_address(); // WRONG

Now that we know how to call it, let's see what WooCommerce does with it.

In \woocommerce\includes\class-wc-checkout.php we find the following statement:

public function create_order( $data ) { /* .... */ $order->set_customer_ip_address( WC_Geolocation::get_ip_address() );

That's right — upon order creation during checkout, the customer IP address is saved to the order as custom metadata.

Another call can be found under \woocommerce\includes\wc-core-functions.php:

function wc_create_order( $args = array() ) { /* ... */ $order->set_customer_ip_address( WC_Geolocation::get_ip_address() );

This time, it's for orders created programmatically — i.e., not through the checkout.

It's now evident that the only reason that function is there is to display this:

So, let's see if we can use the function for other purposes.

Function case study

As we said earlier, and if you're allowed under your country's regulations, you may use the IP address for different scenarios.

The first that comes to mind is coding some custom tracking for a customer who isn't logged in to a user account. You could use that tracking method to troubleshoot cart abandonment or understand your customer's path out of the sales cycle.

You could call the function on the “add to cart” hook:

do_action( 'woocommerce_add_to_cart', $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data );

Or you could call it in the cart page “proceed to checkout” hook, which is equivalent to calling any checkout hook:

do_action( 'woocommerce_before_checkout_form' );

Or you could call it on the thank you page hook:

do_action( 'woocommerce_thankyou' );

In this way, you can follow a visitor who is not logged in along their path to or away from a conversion.

In a previous episode, we spoke about the wc_get_logger function. It's useful for creating custom logs in the WooCommerce admin, so let's make the most of it and create a custom log for each unique IP address that hits our website and visits key WooCommerce pages:

/** * @snippet IP customer conversion log | WooCommerce * @how-to Get CustomizeWoo.com FREE * @author Rodolfo Melogli * @testedwith WooCommerce 6 * @donate $9 https://businessbloomer.com/bloomer-armada/ */ // USER ADDS TO CART add_action( 'woocommerce_add_to_cart', 'bbloomer_log_ip_added_to_cart', 9999, 6 ); function bbloomer_log_ip_added_to_cart( $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data ) { $logger = wc_get_logger(); $logger->info( WC_Geolocation::get_ip_address() . ' added to cart product ID: ' . $product_id, array( 'source' => 'ip-path' ) ); } // USER GOES TO CHECKOUT add_action( 'woocommerce_before_checkout_form', 'bbloomer_log_ip_went_to_checkout' ); function bbloomer_log_ip_went_to_checkout() { $logger = wc_get_logger(); $logger->info( WC_Geolocation::get_ip_address() . ' went to checkout', array( 'source' => 'ip-path' ) ); } // USER MAKES PURCHASE add_action( 'woocommerce_thankyou', 'bbloomer_log_ip_purchased' ); function bbloomer_log_ip_purchased() { $logger = wc_get_logger(); $logger->info( WC_Geolocation::get_ip_address() . ' purchased!', array( 'source' => 'ip-path' ) ); }

This time I'll leave the testing part to you. If you want to send a screenshot of the custom log after the events trigger, feel free to do so in the comments.

The same applies if you find a bug!

WPTavern: SpinupWP Launches CLI Tool and External Database Support

Wordpress Planet - Thu, 04/28/2022 - 20:11

SpinupWP, the cloud-based WordPress server control panel from the folks at Delicious Brains, turns four this year. They celebrated by launching one of the most frequently requested features, a command-line interface to manage servers and sites from the terminal.

Other recent updates include external database support, the site log viewer which allows you to view the last 1,000 lines from the WordPress debug.log file, as well as the Nginx access.log and error.log files, support for DigitalOcean OAuth which makes provisioning new DigitalOcean servers a breeze, and the new Path Redirects feature for managing multiple redirects at the server level.

Along with the CLI, SpinupWP has also released a PHP SDK which is powered by the SpinupWP REST API, offering you multiple options to manage your sites and servers.

I asked Brad Touesnard, founder and CEO of Delicious Brains, where the idea for SpinupWP came from.

“Back in 2002, I started a hosting company with my college roommate and built a hosting control panel from scratch,” Touesnard said. “I made many bad design decisions building that software and have always wanted another crack at it. For example, that control panel had to be installed on every server, and I dreamed of a centralized control panel that simply connected to each server via SSH and ran commands. There’s something beautiful about that design that I’ve wanted to realize for many years.”

That idea stayed with Touesnard as he founded Delicious Brains and grew the company and its product offering. The advent and popularity of Virtual Private Server (VPS) providers like DigitalOcean, Amazon AWS, and Google Cloud led to other open-source projects building managed server platforms for them. Laravel Forge was one such platform, which Touesnard and the team found very interesting. Many team members have launched WordPress-related projects and sites, and a few of them used Laravel Forge.

The server software requirements for Laravel and WordPress are similar, but it would always require some extra configuration to host WordPress sites. This inspired SpinupWP lead developer Ashley Rich to write the first iteration of a tutorial on how to host WordPress yourself, which eventually became the Install WordPress on Ubuntu guide. After that, Rich and other team members like Iain Poulson switched from Forge or whatever service they were using to following the guide and self-hosting WordPress.

“Our team became very fond of using Ashley’s guide to configure servers for WordPress sites and Laravel apps, but setting it all up was complicated and time-consuming,” Touesnard said. “So Ashley built a small app to automate the provision steps. We discussed the possible value of this app at a company retreat in 2017. We started talking about whether this would make sense as a new Delicious Brains product, an app similar to Laravel Forge but designed specifically for WordPress. We realized there were many really cool things we could do by focusing on WordPress and got really excited about building it.”

SpinupWP is the culmination of all these ideas. It’s a managed cloud server control panel that connects to your VPS provider and gives you everything you need to create servers and sites at the click of a button. You retain complete control of your infrastructure, but SpinupWP helps you manage everything in one place. This includes things like adding domains with free SSL certificates installed, switching a site to the latest PHP version, setting up backups, and automatic security updates.

Most importantly, SpinupWP is designed for WordPress. WordPress-specific server-level caching and security is available from the minute you deploy your first site. It also includes WordPress features for developers like WP-CLI, WordPress Multisite support, and a server-level cron to ensure your scheduled posts publish on schedule.

The SpinupWP team is constantly adding new features and quality of life improvements to make managing servers easier.

The product also recently launched the SpinupWP developer community for customers, to provide them with an online space where they can interact with each other and SpinupWP team members, share insights, knowledge, post feature requests, and generally help make it the hosting platform they love to use.

Touesnard is excited about the future of hosting WordPress on cloud servers.

“With WordPress growing to a market share of over 40%, more and more developers are looking for ways to leverage the scalability and flexibility of virtual servers to host their WordPress sites,” he said. “Guided by our customers, we’re excited to see how SpinupWP grows to meet this demand.”

Do The Woo Community: A Focus on Blocks, Themes and WooCommerce

Wordpress Planet - Thu, 04/28/2022 - 09:30

Ben Ritner from KadenceWP weighs in on block, themes and the future of the WooCommerce product page.

The post A Focus on Blocks, Themes and WooCommerce appeared first on Do the Woo - a WooCommerce Builder Community.

WPTavern: Gutenberg 13.1 Ships a Batch of Improvements and Implements a New Border Design Component

Wordpress Planet - Thu, 04/28/2022 - 04:01

Gutenberg 13.1 landed in the WordPress plugin directory earlier today. Not quite as heavy on the feature list as its predecessor, the update focuses more on improvements and bug fixes. The highlight of the release is the overhauled border design component.

One notable bug that theme authors should watch out for is missing styles in the site editor. When enqueueing stylesheets via wp_enqueue_block_style(), they are noticeably absent. This bug was introduced in Gutenberg 13.0 but has yet to be fixed. It is not an issue in the WordPress 6.0 beta releases and is only present in the plugin.

This release also included a couple of block-related changes that I do not dive into later. The Categories block now has a setting for hiding “empty” categories (those without posts). And the duotone button has a new triangle-shaped icon by default, which reverts to its circular shape when a filter has been applied.

New Border Controls Adjusting all four borders of a Group block.

Gutenberg 13.0 introduced new BorderControl and BoxBorderControl components. These updates were an overhaul of the previous border design tools that users would see in the block inspector.

With 13.1, any block that opts into border support will use the new components. This allows end-users to define the top, right, bottom, and left borders. Theme authors can also register these individual borders via theme.json for specific blocks.

Alongside this update, the core Column block now has border support.

Block “Settings” Panel Renamed Block settings panel as shown with the Archives block.

One of my favorite changes will likely not get much attention, but it is worth mentioning. Over a dozen blocks had custom settings panels that read “Block Name settings” in the block inspector. These have all been reduced to “Settings.”

The update might seem minor, but the UI is more polished without the cruft. It is not the most exciting work contributors are putting into the project, but it is the necessary stuff that creates a better user experience in the long run.

Plugin authors who have followed the Gutenberg naming scheme for their own blocks’ settings panels should take note. It might be time to do the same.

Media & Text Font Size Change Font size in Media & Text now set to the default.

The latest plugin release changes the template used to create the Media & Text block. In the past, a large font size was given to the default Paragraph block inserted into the “text” column. The update removes this issue.

This has long been one of those frustrating defaults set by the editor that users would need to adjust each time they added the block. It was also a problem for theme developers who either removed or did not support that specific font size.

Now, if we could only do the same for the Cover block…

Improved Comments Query Loop and Related Blocks New Comments Title block.

Two weeks ago, I reviewed the new comment-related blocks shipping with WordPress 6.0. While the concepts had potential, the experience was still buggier than I expected late into the release cycle. However, those issues are now fixed via a massive team effort. Most, if not all, should also be in WordPress 6.0 Beta 3, which landed yesterday.

The introduction of the Comments Query Loop block opened a ton of flexibility for theme authors and users alike. It acts as a wrapper for other comment-related blocks that can be rearranged for different designs.

The primary issues were on the front-end output. Comment classes were not output via the Comment Template block, but that feature was not a deal-breaker. However, the missing ID meant that comment permalinks and the comment-reply script were not working.

One of the other missing pieces was the “X responses to Post Title” heading. This was needed to bring feature parity with the Post Comments block, deprecated in Gutenberg 13.0. I shared a starting point that others, particularly Carlos Bravo, built upon, creating an even better version. Now, we have a dedicated Comments Title block in Gutenberg. I was happy to play even a small role in making it happen.

WPTavern: Coming in Gutenberg 13.2: Users’ Editor Preferences Will Be Stored in the Database, Improving Persistence Across Sessions

Wordpress Planet - Thu, 04/28/2022 - 00:38

“Welcome to the Block Editor!” Once you have dismissed this notice, why does it keep coming back? For years users have complained about this and the fact that their settings in the editor do not seem to save across sessions. They have taken to the official support forums and Reddit to find out how to block this message from appearing. WordPress developer Johan Jonk Stenström even created a plugin called Welcome to the block editor B gone, which removes the welcome message altogether.

In the past, WordPress has stored users’ editor preferences in the browser. In 2019, web developer Andrew Duthie described the problem in a ticket on GitHub:

In the block editor, this is used in a few stores to persist preferences (e.g. toolbar placement, “new user experience” tips, etc).

Due to the transient nature of browser storage, this persistence is not as sticky as it is expected to be, including: switching browsers (unique storage between browsers), or using private browsing tabs (storage cleared between sessions), or the same user across a network of sites (storage unique by domain).

Duthie suggested that Gutenberg persist users’ editor preferences to the database rather than local storage.

Gutenberg 13.2 is set to introduce a new preferences persistence API and a new package that saves these preferences to the WordPress database, as part of the user’s meta. It also includes local (legacy) storage as a backup. This will solve many longstanding problems users have had with preferences not persisting across sessions.

One interesting sidenote is that Gutenberg engineer Riad Benguella found that this PR improved the “block selection” (focus) performance by nearly 50%. It is a remarkable improvement but not intentional so he suggested they investigate further to see why it had that effect.

Gutenberg contributors tested this update by creating a few different users, switching between them, using different browsers, and setting different preference combinations. The preferences stayed with the user as expected. This update will address a lot of little annoying bugs that users have complained about for years and should make plugins like Welcome to the block editor B gone obsolete.

WPTavern: #24 – Aki Hamano on Building Useful Blocks for Fun

Wordpress Planet - Wed, 04/27/2022 - 14:00

On the podcast today we have Aki Hamano.

Aki is a freelance developer from Japan. He builds websites for clients and enjoys setting himself difficult problems to solve.

He came to my attention when Justin Tadlock wrote an article about a playful block that he’s created.

After a little further exploration, it turns out that Aki’s been busy in his spare time creating a range of blocks, all of them useful and all of them freely available in the WordPress plugin repository.

We start off by having a brief chat about what the WordPress scene is like in Japan. Is there a strong sense of community, and do in-person events take place?

We then move on to talk about how he became interested in creating blocks. Did he find it easy to understand the new skills required to get up and running and was there enough documentation to make speedy progress?

We spend the remainder of the podcast talking through the five blocks which Aki has put in the WordPress plugin repository. Often, they were created to scratch his own itch, to solve a problem that he faced in his work, but sometimes, as with his excellent Piano Block, it was just for fun and the challenge of trying something new.

The Piano Block aside, all of Aki’s blocks have an easy to understand purpose, and they take on a simple challenge, and solve it.

This is perhaps one of the main reasons that blocks are so interesting, they can be simple or complex, utilitarian or just fun.

It’s an interesting discussion, and you never know, perhaps you’ll find yourself using Aki’s blocks at some point yourself.

Useful links.

Block Editor Handbook

Create Block Package

Aki Hamano’s Github page

Flexible Spacer Block

Flexible Table Block

RichText Extension

Custom HTML Block Extension

Piano Block

Play the Piano and Other Instruments via the WordPress Block Editor


[00:00:00] Nathan Wrigley: Welcome to the Jukebox podcast from WP Tavern. My name is Nathan Wrigley. Jukebox is a podcast which is dedicated to all things WordPress, the people, the events, the plugins, the blocks, the themes, and in this case, the building of useful blocks and making them freely available. If you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast, player of choice. Or by going to WP tavern.com forward slash feed forward slash podcast. And you can copy and paste that URL into most podcast players as well.

If you have a topic that you’d like us to feature on the podcast. Well, I’m very keen to hear from you and hopefully get you, or your idea featured on the show.

Head over to WP tavern.com forward slash contact forward slash jukebox. And you can use the contact form there.

So on the podcast today, we have Aki Hamano. Aki is a freelance developer from Japan. He builds websites for clients and enjoys setting himself difficult problems to solve. He came to my attention when Justin Tatlock wrote an article on the Tavern. About a playful block he’d created, but more on that later.

After a little further exploration, it turns out that Aki’s been busy in his spare time, creating a range of blocks. All of them useful and all of them freely available in the WordPress plugin repository.

We start off by having a brief chat about what the WordPress scene is like in Japan. Is there a strong sense of community and do in-person events take place there?

We then move on to talk about how he became interested in creating blocks. Did he find it easy to understand the new skills required to get up and running? And was there enough documentation to make speedy progress?

We spend the remainder of the podcast talking through the five blocks, which Aki has put in the WordPress plugin repository. Often they were created to scratch his own itch, to solve a problem that he faced in his work. But sometimes, as with his excellent piano block, it was just for fun, and the challenge of trying something new.

The piano block aside. All of our keys blocks have an easy to understand purpose and they take on a simple challenge and solve it. This is perhaps one of the main reasons that blocks are so interesting. They can be simple or complex, utilitarian or just fun.

It’s an interesting discussion. And you never know, perhaps you’ll find yourself using Aki’s blocks at some point yourself.

If you’re interested in finding out more, you can find all the links in the show notes by heading over to WP tavern.com forward slash podcast. Where you’ll find all of the other episodes as well.

And so without further delay, I bring you, Aki Hamano.

I am joined on the podcast today by Aki Hamano. Hello Aki.

[00:03:35] Aki Hamano: Hello, Nathan.

[00:03:36] Nathan Wrigley: I am really pleased to have you on the podcast today. Real welcome to you. Aki is joining us today to talk largely about blocks. We’ve had a few conversations before this, trying to figure out what it is that we’re going to say. We’re going to talk mainly about Aki’s contribution to wordpress.org and the blocks that he’s created there.

First of all Aki would you just introduce yourself, tell us who you are and where you come from?

[00:04:06] Aki Hamano: Okay. I’m a web developer by living in Japan. And I built many website, for my client and recently, in my side project, I create some blocks, and published to wordpress.org plugin directory. It’s very fantastic.

[00:04:29] Nathan Wrigley: We will be talking about those blocks later. There’s many of them and some of them have a very serious purpose, as we’ll find out, and some of them are just for fun. So we’ll get into that in a moment. Before then, could you just tell us a little bit about the WordPress community in Japan? I confess I have never been to Japan, and I don’t know too many people in the WordPress community in Japan. So I’m just interested to hear what it’s like, how big it is. Are there any meetups? Anything like that?

[00:05:02] Aki Hamano: Ah, yes. Actually, we plan to create an event, WordPress Mega Meetup in May. And there is a lot of communities in Japan, and we are enjoying to contribute or talking about WordPress or create things. It’s very exciting in Japan.

[00:05:27] Nathan Wrigley: Do you have regular meetups spread throughout Japan? For example, in the UK, there are different meetups, usually in the big cities like Leeds and London and Manchester and so on. Do you have meetups in Japan as well?

[00:05:43] Aki Hamano: Actually, I don’t have a meetup, but the biggest meetup is WordPress Tokyo meetup. That’s the biggest communities.

[00:05:54] Nathan Wrigley: And are real world events happening at the moment, or like the rest of the world, are you doing virtual meetups because of COVID restrictions.

[00:06:04] Aki Hamano: Yes.

[00:06:05] Nathan Wrigley: Yeah, it’s all virtual, like it is here in the UK. Well, it’s nice to, nice to have you on the show. If anybody who is listening to this, is from Japan, we’d be most interested to hear from you and possibly get engaged in conversations about what people in Japan are doing with WordPress. But it’s nice to hear that you’ve got your Mega Meetup, hopefully coming out in May.

Let’s talk about your blocks. Well, before we get to your blocks, let’s talk about blocks in general. And I want to ask you the question, what is it that you like about blocks? Why do you find blocks to be exciting?

[00:06:41] Aki Hamano: I have a simple answer. I love to build the things, and I think it was similar to use Lego blocks. It’s very exciting, and I’m very excited to see on block editor when I create some little code on my editor. It’s a very, very fantastic, that’s all.

[00:07:05] Nathan Wrigley: Did you start to build blocks right at the beginning? Have you been doing it for years or is it more recent? Have you just been doing it for a year or two years or three years?

[00:07:17] Aki Hamano: Maybe three, maybe three years, and actually my first block plugin, Rich Text Extension. And WP Tavern posted an article about this plugin three years ago. That’s my first block.

[00:07:36] Nathan Wrigley: There’s quite a few more that have come down the pipe and we’ll get to those in just a moment. We’ll do them one at a time in a minute. I’m curious to know how difficult you found it. Was it very hard to learn the new skills required to build blocks? Did you find it straightforward or was it really challenged?

[00:07:57] Aki Hamano: Ah yes. I think it’s very, very hard. because we need to build codes and we need to learn another language, JavaScript, and framework reworked or NPM. I didn’t know why do we need to build the code because, for example, PHP works you know? I didn’t understand what does it mean to build. So, it was very difficult to understand the commands, new language and the build tools.

[00:08:33] Nathan Wrigley: Why did you make the effort? If it was really difficult, why did you persevere and why did you keep going with all of this difficult new technology, when it would have been easier just to carry on doing what you were always doing?

[00:08:49] Aki Hamano: So. I will learn from and Block Editor Handbook. There is many tutorials on there. It’s very useful document. I started to create blocks. And another example, there is a useful GitHub repository, Gutenberg Examples. There are many examples on the repository and I analyze these codes, and also, I deep dive into Gutenberg core code and core blocks. It’s hard to understand these codes, but it’s very useful for me to build the blocks.

[00:09:33] Nathan Wrigley: Do you think it’s easier now? If somebody was starting to build blocks today, do you think they would have an easier time? Are there more, tutorials, more documentation to make it easier than it was for you? Is it an easier thing?

[00:09:52] Aki Hamano: I want to recommend NPM package. So it’s a WordPress create block. The package creates a block plugin template and automatically install recommended script package. And with simple command, we can build plugin quickly. And if you change some codes in JavaScript, we can see the change on block editor. So first I want to recommend create block package.

[00:10:29] Nathan Wrigley: I will link to that in the show notes. So that’s the WordPress create block package.

[00:10:35] Aki Hamano: Yes.

[00:10:36] Nathan Wrigley: Are there any other tools that you have found useful? That could be things on your computer, software, or it could be resources, tutorials, or books or anything that you might have used. Is there anything which you think was really useful apart from the WordPress create block?

[00:10:55] Aki Hamano: There’s many tools but I use basic tools. For example, I use VS code. For local environments, I use WPM, that’s all.

[00:11:07] Nathan Wrigley: Just those two things?

[00:11:08] Aki Hamano: Yes.

[00:11:09] Nathan Wrigley: Now I played with your blocks over the last few days and there are five, I think, currently there. You can find Aki’s Github repository which has links to the public facing versions of them. Alternatively, you can also find them on wordpress.org, and I will, in the show notes, link to them individually. There are five and I’m going to go through them in order of my favorite. Not necessarily in order of how clever they are, or how brilliant they are, but just the ones that I like, because I could see a use for them. I’ve left probably the most, interesting one until the end, which is just fantastic fun, but I couldn’t see myself using it, so I’ve left it until the end.

But, first off, let’s talk about your flexible space of block. Now this, you will find on the wordpress.org repo as you will do for all of them. Tell us what this does. This is sublimely clever. It’s very, very cool.

[00:12:12] Aki Hamano: Yes. we know that core spacer block can create space, but only unit, and only one height. But I want to create multiple spacers, depends on window width. This plugin enables you to create three types spacer, for desktop and tablet and the mobile. And we can change the break points.

So breakpoints, it’s used to media queries and also I can create a negative space. So we can cross two blocks, and I need it, so I made it.

[00:12:55] Nathan Wrigley: Is that why? It was something you needed, and so you created it and then let it go into the repository? That’s very nice to hear.

[00:13:02] Aki Hamano: Okay, thank you.

[00:13:03] Nathan Wrigley: The interface, the way that the block works, is you obviously install it as a plugin in WordPress, and then you have an option, there’s a spacer option, which appears, a flexible spacer. And instead of the core block, which just has the spacer, Aki’s block gives you three different spacers in one.

So the interface shows you what the mobile spacer will do, what the tablet spacer will do, and what the desktop spacer will do. And they’re all there in the interface all at the same time. I can only say that you’ll get it if you install it. It’s difficult to explain, but the moment you actually have it on your website and you see the purpose of it, it’s brilliant. So rather than having the settings in the menu on the right, all of the settings are, well, certainly for the height, all of the height settings are actually right before you in a visual way, and then as Aki said, there’s the option to, create negative space. There’s a toggle switch and you can create negative space and then you can draw up your content to overlap with other blocks. It’s really nice. It works really, really well. Well done.

[00:14:11] Aki Hamano: Thank you.

[00:14:12] Nathan Wrigley: The next one that I want to talk about is probably I think the most installed of the five that we’re going to talk about. This is your flexible table block. And again, I will link in the show notes. Would you just quickly tell us what your flexible table block does?

[00:14:29] Aki Hamano: Ah, yes. The most great point is that we can create merged cells. Core table block doesn’t allow too merge cells. This burning can create many, many kinds of styles on each cells and it’s very easy to insert or delete row and column from bottom, top of the table. So I think you can create any kinds of a table.

[00:15:00] Nathan Wrigley: Yeah. So when you’re in Gutenberg, after you’ve installed the plugin, you get the option to add in a block, and in this case, you want to be picking the flexible table block. If you just search for table, you’ll get the option to insert it.

It’s got an icon with like a lightning bolt, and then it throws in a table, but the options there’s so many fantastic options. The most useful, I think of which as you said, is the ability to merge cells. So for example, if you put a three by three, three row and three column table in, you could merge all of the columns or the rows, or just a portion of them, and you can do that by clicking shift and selecting multiple cells at the same time. And then you click the little merge icon to make that happen.

But it also brings along a whole load of other possibilities. So there’s, there’s the option to obviously add in as many rows as you want in a intuitive UI, but there’s options to add in colors, uh, you can add in headers and footers to the table, you can add in widths of difference sizes and, you know, padding and margins and all of that. And then you’ve got options for captions as well, and topography options as well. It’s got a lot, basically. And it’s all done in a visual way and it just works. Now this must I’m imagining have taken quite a long time to create.

[00:16:23] Aki Hamano: Yes, it might be confused to create table, but we can create any kind of table. It’s my purpose.

[00:16:31] Nathan Wrigley: it’s really, really excellent. So again, if you go to the show notes, you’ll be able to find the flexible table block. And as Aki said, the main purpose there is just to, is to really, to be able to create any layout and merge different things. And you’ll see in the show notes on the wordpress.org repo, all of the different options and what have you. And it’s, it’s very comprehensive. Essentially, if you want a table to be displayed in almost any configuration, then the flexible table block is highly recommended.

My third pick is your rich text extension.

[00:17:05] Aki Hamano: Yes.

[00:17:07] Nathan Wrigley: Again really interesting. Tell us what this does.

[00:17:10] Aki Hamano: The plugin is my first plugin. I made it two or three years ago. Now Gutenberg enables you to create inline highlight, but, two or three years ago, we don’t have the function. So, I want to create, I want to highlight inline text, or I want to enable, I want to change the inline font size. So I made it.

[00:17:39] Nathan Wrigley: There’s a couple of options which become available. Essentially, you can highlight text in several different ways. So you could fully highlight in one color or another. So you could, for example, in the pre-installed version, when the plugin is installed, you get the option for yellow and red, but you can change those as you wish.

And you can either do full highlighting of the text, or you can do half highlighting and you can, you can specify how thick the highlighting is. So for example, if you wanted it to appear almost like an underline, it could highlight a bit like that. Or alternatively, you could just go full height and highlight the whole text, and you’ve got several options to switch different things on, rename the highlighting.

So you might like to rename it as bold red or something like that. And then you’ve also, got the, other option, which is to change the defaults for the size of your text. So you can have as many as four different options, and you can rename them, whatever you like. And you could have like an ultra small, a medium, a big, or a really big. Pick whatever names you like.

And then those are added into the Gutenberg editor, as options for changing the text size. So let’s say for example, that in the middle of a sentence, for some particular reason, you just wanted one word to be extremely big, you could do that with Aki’s rich text extension solution. And then of course you could highlight it as well.

There’s a settings menu, which enables you to fiddle with these things, but there is only one menu and everything that you need to interact with is in that one, simple menu. Does Gutenberg now do all that this one did?

[00:19:24] Aki Hamano: So highlighting inline text is able to create now via Gutenberg now. But to change in line text size, we can’t create now on Gutenberg.

[00:19:37] Nathan Wrigley: So it still, it still serves a purpose, it’s still useful. Just as an aside, how often do you go back and look at these plugins and update them. I can see, for example, that the flexible spacer block was updated two months ago and you’ve updated the flexible table block just one week ago.

Are you committed to keeping each of these going? Do you go back and look at them, all five of them regularly?

[00:20:05] Aki Hamano: Ah yes. So before WordPress major update, I check these plugins will work. Fix some issues, I want to add some new functions, yes.

[00:20:18] Nathan Wrigley: So you go back periodically and check them just to make sure each time WordPress Core is updated. That’s great. Thank you. Okay, next one, second to last one, is the custom HTML block extension. What does this do?

[00:20:37] Aki Hamano: There is block that we can create pure HTML, and we can create pure HTML to show on front-end. It’s a custom HTML block, but it’s very hard coding on block, because there is no text highlight and it’s difficult to add indent. So I want to create some codes in editor which are like VS Code. Actually, this plugin use VS Code Core library named Monaco editor. So we can write code like we coding on VS Code. It’s very similar to VS Code. It’s easy to create code.

[00:21:26] Nathan Wrigley: This feels like it was the most difficult to create. I could be wrong, but this one has so many different options in there.

[00:21:37] Aki Hamano: Yes.

[00:21:38] Nathan Wrigley: If you wish to create something on your website, which requires you to write some HTML, but the core HTML block doesn’t really highlight things or indent things in a way which makes it easy for you to understand, because you’re used to your IDE, VS code as you’ve described in this case or whatever you’re using.

This makes the HTML in Gutenberg look and feel just like it would do in your text, editor of choice. So things can be indented, things are highlighted, the font can be altered. You can customize it to look exactly how you prefer it.

And then when you click save and publish, everything is output on the front end just as HTML. So, all of that design is stripped away and it becomes HTML. You know, if you’ve got something in an H1 tag, it looks like an H1 on your website, depending on what your theme is telling that to do. Again, why did you build this?

[00:22:46] Aki Hamano: Why? So sometime I can’t create a layout with core block or other plugin. So sometime I need to write some code directly. And so I want to write code more easily.

[00:23:07] Nathan Wrigley: If you are familiar with using a text editor, then this will just be fantastic for you. You’ve got everything that you want. You can resize, you can use things like Emmet and what have you, and, you might be able to throw in a, the demonstration that you have here is a list item, sorry, a an ordered list and you add five items in using the Emmet shortcodes and five list items will appear and so on.

So it’s really for those people who want to put HTML into their WordPress posts or pages and want it to look like their IDE, something that they’re familiar with, something that they’re used to. And yeah, bravo, it’s a chore doing anything in the core block cause it doesn’t have enough similarity to what you’re used to doing on your Mac or PC. Okay. So we’ll recommend that one as well.

And last but by no means least. This is just genius. In fact, this is the one that alerted Justin Tatlock, I think to you, he maybe been following you before this, but this was the one that he wrote a piece about over on the WP Tavern, and I’ll link to that. This is, this is the piano block. I can tell you it does exactly what you think it’s going to do. It puts, it puts a piano inside of Gutenberg. Now, why, why do we need a piano inside Gutenberg? This is brilliant.

[00:24:33] Aki Hamano: First, I want to say it’s just fun. And maybe someone might say, what can they do with this plugin or, what does it mean. My purpose, my purpose to build these things is, enjoy to create. I want to try a potential, possibility of block editor..

I want to know what block editor can create, can explain, and also, I love music. I wanted to play music on book editor. It was crazy.

[00:25:09] Nathan Wrigley: Yeah, that’s something that I just find really interesting. The idea that it doesn’t have a purpose beyond learning how to use the block editor.

I would thoroughly encourage everybody to go and install this one one, and just put it somewhere and try it out. Basically what you get is a block and you add the piano block. It’s got a lovely, obvious icon. It’s probably the most obvious icon I’ve ever seen that clearly is a piano as an icon. And, you get, it looks like a couple of octaves, keys are all there. You’ve got keyboard shortcuts, so every key on the piano is mapped to a key on your keyboard.

So if you really wanted to, you could actually play on the keyboard. Alternatively, you can just hover over with your mouse and click on the key in question. You can increase the volume and decrease the volume. There’s the opportunity to choose from, I don’t know, it looks like about 12 different sounds.

So we’ve got an acoustic bass and electric guitar and organ, a regular piano, violin, harp, and xylophone and so on. And then there’s the addition of, there’s a toggle switch for those people who like to have sustain. So it turns the sustain pedal on and off. Now the only purpose is for fun.

[00:26:29] Aki Hamano: Yes.

[00:26:30] Nathan Wrigley: At the minute, it doesn’t go onto the front end though does it? If you publish this, that block will not appear on your website. It’s only in the editor itself. Now, why is that?

[00:26:43] Aki Hamano: My purpose is to play on block editor, not the front end. It’s the reason, and it was difficult to create piano on front end because this block made with React, and I don’t build React on front end now, but I think it is possible. In the future I may enable it.

[00:27:09] Nathan Wrigley: So at the minute, it’s not able on the front end because there’s gaps in the knowledge that you have. It’s built with React on the backend, and you’ve yet to figure out how to make that happen. Obviously with a project, as fun as this, it doesn’t necessarily have a purpose on the front-end and probably it’s not right at the top of your priority list.

I’ve got to say though, it’s got the least options, a lot of the other ones, for example the rich text extension that you have and the flexible table block, they’ve got lots of different options available to style the way things look and so on. The custom HTML block extension in particular has lots and lots of different options.

I’m imagining though that they were potentially easier to build than the piano block, because the piano block, It’s like a toy, it’s almost like a game built inside of the editor. So was the piano block, was that the most difficult to pull off because, you know, you’ve got all sorts of things happening.

You’re creating sounds at the moment that you click a button and those sounds have to be a particular octave. They have to add sustain and be generated by a different audio sound. I’m imagining, you know, depending on which instrument you’re manipulating. Was that the most challenging one to build?

[00:28:25] Aki Hamano: Uh, yeah. This plugin used web audio API, and web audio API is very, very complicated, but I use wrapper library, tone.js. It’s enabled to create sounds with small code. And most of the difficult things is to find good sounds, because this plugin used real audio sounds, each note.

[00:28:53] Nathan Wrigley: Oh wow, okay.

[00:28:55] Aki Hamano: I needed to find audio with GPL compatibility. It’s very difficult to find it.

[00:29:02] Nathan Wrigley: So, for example, if I play, I don’t know, an a on the acoustic piano and then play a D for example, then they are different audio files that you’re pulling out in order to render that sound?

[00:29:17] Aki Hamano: Yes.

[00:29:18] Nathan Wrigley: That’s really interesting. These are all free. Obviously the piano block is just something a bit different. It’s a bit of fun, but all of the other four that we mentioned, they’re all free and they all have a very useful application. Do you plan now that you’ve got all this experience, do you plan at any point to come out with any new blocks, any new things that we might hear about?

[00:29:43] Aki Hamano: Now, I have no idea, but I want to create block for full site editor. For example, I want to create block, inside the query loop block. For example, if the article was posted in a few days, we need a new level. So I’m planning to create a new level block. Or social network sharing link block.

[00:30:12] Nathan Wrigley: So you’ve got a couple planned for the future. This must take a lot of time. And although you described earlier that you’ve been doing this so that you can learn, and in some cases you needed something to be done, presumably for your websites. Do you plan on creating revenue, charging, having a pro version of any of these, or are they always going to be freely available on the repo?

[00:30:41] Aki Hamano: So, I want to create these plugins for free. It depends on WordPress philosophy. No, I don’t think because I get money from my own work. So these plugins don’t need money. I want create these plugins for free in the future.

[00:31:01] Nathan Wrigley: That’s absolutely fantastic to hear. I love the fact that you’ve created so many free plugins and they’re so different from each other. If anybody wanted to reach out to you and talk about these different blocks that you’ve created, what’s the best way? That could be an email or it may be a Twitter account or perhaps Slack. What’s the best way to get in touch with you Aki?

[00:31:25] Aki Hamano: If you love these plugins, please follow my Twitter account, or please send and direct message. Or please check my Github repositories.

[00:31:36] Nathan Wrigley: I will link to all of those. The accounts for Github, the Twitter account, I will link to in the show notes. So yeah, if you want to reach out to Aki and express your gratitude, or just have any questions, then be sure to check out the show notes on the WP Tavern website.

Thank you for joining us on the podcast today. I really appreciate it.

[00:32:00] Aki Hamano: Me too. Thank you.

Particles Orange

Drupal Themes - Wed, 04/27/2022 - 09:39

Particles Orange orange Theme is Mobile-friendly Drupal 8 responsive theme. This
theme features a custom Banner, responsive layout, multiple column layouts and
is highly customizable. It also supports Google fonts, font awesome, and it is
great for any kind of business website.

particles orange Theme is developed with all latest technologies Drupal 8 or 9,
Bootstrap, Font Awesome and particle js etc.


1. Responsive, Mobile-Friendly Theme
2. Supported Bootstrap
3. In built Font Awesome
4. Mobile support (Smartphone, Tablet, Android, iPhone, etc)
5. A total of 13 block regions
6. Custom Banner with particle background
7. Sticky header
8. Drop Down main menus with toggle menu at mobile.

Available options in the theme settings:

1. Change particle background image.
2. Hide/show and change copyright text.
3. Hide/show and change position bottom to top scroll.
4. Hide/show social icons in the footer.

Particles Orange

Drupal Themes - Wed, 04/27/2022 - 09:39

Particles Orange orange Theme is Mobile-friendly Drupal 8 responsive theme. This
theme features a custom Banner, responsive layout, multiple column layouts and
is highly customizable. It also supports Google fonts, font awesome, and it is
great for any kind of business website.

particles orange Theme is developed with all latest technologies Drupal 8 or 9,
Bootstrap, Font Awesome and particle js etc.


1. Responsive, Mobile-Friendly Theme
2. Supported Bootstrap
3. In built Font Awesome
4. Mobile support (Smartphone, Tablet, Android, iPhone, etc)
5. A total of 13 block regions
6. Custom Banner with particle background
7. Sticky header
8. Drop Down main menus with toggle menu at mobile.

Available options in the theme settings:

1. Change particle background image.
2. Hide/show and change copyright text.
3. Hide/show and change position bottom to top scroll.
4. Hide/show social icons in the footer.

HeroPress: Keep walkin’ soldier Keep movin’ on – முன்னேறிடு முன்னேறிடு

Wordpress Planet - Wed, 04/27/2022 - 04:00

இக்கட்டுரை தமிழிலும் பதிவிடப்பட்டுள்ளது.

Over the years, I found myself making less ambitious choices with respect to my studies and career, because I feared that I may not be able to meet the demands of ambitious choices. Eventually, when I quit my Software Engineer position at Novell, it was for the same reason. I could not do justice to my work and my family. This might be a refrain that many women might identify with. 

After quitting the job, I explored a few different fields for a couple of years. Eventually, I registered for a PhD thinking that I’d fit into the academia. However, by the time I finished it, I was not willing to work at any University. With an Engineering College a few metres away from my home, many of my friends and neighbours suggested that I should try to get a position there, but I was adamant that I shall not go for it, as the rules and restrictions of a typical college environment in South India did not resonate with me.

At the Crossroads

Due to some nagging health issues and two young children – one a new-born, I was very keen on doing something on my own terms. But my options were minimal. It was at this time, that I felt like a beautifully crafted Veena which got eventually trashed. 

My favourite Tamil poet Bharathi wrote these lines asking the Supreme power why She chose to craft a beautiful Veena only to trash it. He was referring to the potential and intelligence in him that he was wasting away. He prayed to be empowered to live a useful life.

I would repeat his lines and wonder why I couldn’t make something useful out of my life, out of all the knowledge I had gathered, out of all the skills I had spent hundreds of hours to hone. I wondered if I was being stubborn by not choosing the path of least resistance – working for the nearby educational institution.

In my mid-thirties, armed with a PhD in Natural Language Processing(NLP), and scattered experiences in various areas of software, my other options were minimal. After intense introspection and googling, I realized that I could try a remote job as a last resort. The WordPress ecosystem seemed to be full of remote positions, but I did not have the skills for it. Till then, I had in-depth understanding and command over C, Perl, the Unix OS and the command line utilities. As far as web development was concerned, I had the experience of writing hardcoded html home pages(some of you might remember this era) a decade before.

Starting Fresh

At this juncture, I had a choice to look for some work with my then skillsets and qualifications, given my constraints, or to start from scratch on web development. I chose to do the latter.

The lines from Rudyard Kipling’s If were my mantra in those days.

If you can make one heap of all your winnings
And risk it on one turn of pitch-and-toss,
And lose, and start again at your beginnings
And never breathe a word about your loss;

Of course, I was feeling quite bad about my loss, the loss of NLP from my day-to-day work. But it was important for me to do something with my skills than to be very selective about what I was doing, as I was not willing to compromise on the other conditions.

So, I set to work.

I started a couple of WordPress sites; One of them, a book review site PlusMinus’nMore, built on WordPress, became quite popular over a few years; I started a social startup named RAPO, to bring people together through books and wrote the application for it; I freelanced – wrote tutorials on WordPress and Linux, offered part-time support and documentation service for themes and plugins. My good friend, who was running her own venture using Zoho, outsourced any HTML/CSS sub-tasks to me; I contributed to WordPress Core and also offered Tamil Translations for plugins and themes. I wrote amateurish plugins and released them. I was willing to do anything to learn WordPress, as a user and as a developer. All of this happened at the comfort of my home, without having to compromise on the care I gave for my children.

However, freelancing soon became quite overwhelming because of the administrative overheads. Consequently, I started applying for remote positions. It was difficult to get a break because I was overqualified. It was a miracle that I got into ProsPress Inc. and suddenly, I found myself a remote developer working on WooCommerce Subscriptions. 

After a couple of years, Automattic happened and I moved over to the Woo Data team. I still don’t do NLP in my day-today job, and my knowledge on the trends in NLP or ML is quite outdated. However, I am keeping my hopes alive and learning a lot on a range of things that I work on everyday – Payments, the Hadoop ecosystem and Functional Programming in Scala to name a few.

Today, I have relocated to Dubai thanks to my remote job. I am glad that I chose the WordPress ecosystem because it has given me what I wanted and more.

Lessons To Take Away

What I learnt from these events and what I frequently remind myself of:

  1. The past is gone. The present and future are in my hands. I can always start afresh and find meaning from the rest of my life.
  2. It is important to keep choosing what I enjoy doing, without looking for rewards, even if it does not make sense always. I shall be able to connect the dots later.

So, my dear reader, where ever you are in the world, whatever your current situation might be, especially if you’re a mom who had a high-flying career which you had to let go off, I hope my story inspires you to remember that the present and the future are in your hands, if you’re not reluctant to start afresh. Do your duty towards your family, but do not compromise on what you want out of life. Keep walking the journey and the future will present options that you never dreamt of.


முன்னேறிடு முன்னேறிடு

என் வாழ்க்கையைத் திரும்பிப் பார்க்கும்போது, பள்ளி மற்றும் கல்லூரியில் படிக்கும்போதும் சரி, அல்லது வேலையில் இருக்கும்போதும் சரி, பல முறை என் ஆற்றலுக்கேற்றவற்றைத் தவிர்த்து, எளியவற்றைத் தேர்ந்தெடுத்துள்ளேன். உள்ளூர, என்னால் மிக உன்னதமான குறிக்கோள்களை மேற்கொண்டு செவ்வனே செய்ய முடியுமா என்ற ஐயமும், குடும்பத்தைப் புறக்கணித்து விடுவேனோ என்ற பயமும் தான் காரணம். நோவெல் நிறுவனத்தில் மென்பொருள் பொறியாளர் வேலையை ராஜினாமா செய்ததும் இக்காரணத்தால்தான். இது பல பெண்களுக்கு எங்கேயோ கேட்ட பல்லவியாக இருக்கக்கூடும்.

வேலையை விட்டவுடன், சும்மா இருக்க விருப்பமில்லாமல் சில தொழில்-சார்ந்த படிப்புகளை ஆராய்ந்து, இறுதியாக முனைவர் பட்டத்துக்குப் பதிவு செய்தேன். ஆனால் அதை முடிக்கும்போது எனக்கு எந்தப் பல்கலைக்கழகத்திலும் வேலை பார்க்க விருப்பமில்லை. என் வீட்டிற்கு அருகிலேயே ஒரு தொழில்நுட்பக்கல்லூரி இருந்ததால், என் நண்பர்களும் அண்டை வீட்டாரும் அதில் விண்ணப்பிக்குமாறு பரிந்துரைத்தனார். ஆனால் எனக்கு தென்னிந்தியக் கல்லூரிகளின் விதிகளும் கட்டுப்பாடுகளும் தரும் ஒவ்வாமையால் அதைத் தவிர்த்துவிட்டேன்.

நல்லதோர் வீணை

சில நாள்பட்ட உடலூறுகள், மற்றும் இரு சிறு குழந்தைகளின் பராமரிப்பு என்ற இருவேறு காரணங்களால் நான் என் நிபந்தனைகளுக்குட்பட்ட ஏதாவது செய்யவேண்டும் என்பதில் குறியாக இருந்தேன். ஆனால் எனக்கு ஒரு வழியும் தென்படவில்லை.

என் அனுக்கக் கவி பாரதி, சிவசக்தியிடம் 

“நல்லதோர் வீணை செய்தே, அதை நலம்கெட புழுதியில் எறிவதுண்டோ?
சொல்லடீ சிவசக்தி, எனைச் சுடர்மிகுமறிவுடன் படைத்துவிட்டாய்!
வல்லமை தாராயோ இந்த மாநிலம் பயனுற வாழ்வதற்கே!”

என்று முறையிட்ட வரிகள் என்னுள் எப்பொழுதும் ரீங்காரமிட்டுக்கொண்டிருந்தன. அந்த வரிகளில் நான் என்னைக் கண்டேன். எத்தனையோ விஷயங்களைக் கற்றும், பல நூறு மணி நேரங்கள் பாடுபட்டு வளர்த்துக்கொண்ட திறன்கள் இருந்தும், அவை யாருக்கும் பயனற்றுப் போவதாகத் தோன்றியது. ஒருவேளை அது கல்லூரியில் வேலை பார்க்க மாட்டேன் என்ற என் பிடிவாதத்தால் தானோ என்று என்னை நானே கேட்டுக்கொண்டேன்.

முப்பத்தைந்து வயதில், முனைவர் பட்டம் மற்றும் மென்பொருள் அனுபவம் வைத்துக்கொண்டு வேறு என்ன செய்யமுடியும் என்று யோசித்தேன். மிகுந்த ஆராய்ச்சிக்குப் பின், வீட்டிலிருந்து செய்யக்கூடிய இணையவழி வேலைகள் பற்றி அறிந்து கொண்டேன். வர்ட்ப்ரெஸ்(WordPress) தொடர்பான வேலைகள் பலவும் இப்படிப்பட்டவையாக இருந்தன. ஆனால் எனக்கு இணைய மென்பொருள் உருவாக்கத்தில்(Web development) எந்தவொரு அனுபவமும் கிடையாது. எனக்குத் தெரிந்ததெல்லாம் சி(C), பேர்ல்(Perl), யூனிக்ஸ்(Unix) மட்டுமே.

புதிய பாதை

இந்தக் கட்டத்தில், ஒன்று, நான் என் படிப்பு மற்றும் தகுதிகளுக்கேற்ற வேலை செய்யலாம் அல்லது வர்ட்ப்ரெஸ்ஸைப் புதிதாகக் கற்றுக்கொண்டு வேலை தேடலாம். நான் வர்ட்ப்ரெஸ்ஸைத் தேர்ந்தெடுத்தேன்.

ஆங்கில எழுத்தாளர் ருட்யார்ட் கிப்ளிங்கின் (Rudyard Kipling) ‘இஃப்’ (If) என்ற கவிதையின் சில வரிகள் என் நினைவுக்கு வந்தன. “ஒருவேளை, உன் வாழ்க்கையின் எல்லா வெற்றிகளையும் மூட்டைக்கட்டி சூதாடி, ஒரே சுண்டில் அவற்றையெல்லாம் இழந்துவிட்டு, மீண்டும் முதல் படியிலிருந்து தொடங்கி, உன் இழப்புகளைப் பற்றி யாரித்திடமும் புலம்பாமால் இருக்கமுடியுமானால் நீ உன் வாழ்க்கையில் வெற்றி பெறலாம்”, என்ற அந்த வரிகளே எனக்குத் தாரக மந்திரமானது.

வெகுவாக புலம்பவில்லை என்றாலும், உள்ளுக்குள் வலித்தது. ஆனால் நான் விட்டுக்கொடுக்க விரும்பாத சில நிபந்தனைகள் வைத்திருந்ததால், இது ஒன்றே முன்னேறும் வழி என்று முடிவெடுத்தேன்.

செயலில் இறங்கினேன்.

சில வர்ட்ப்ரெஸ் தளங்களை உருவாக்கினேன். PlusMinus’nMore என்னும் புத்தக விமர்சன தளமும் அதில் ஒன்று. மூன்று வருடங்களுக்கு அது சிறப்பாக செயல்பட்டது. நண்பர்கள் குழுவுடன் சேர்ந்து RAPO எனும் சமூக நிறுவனத்தை உருவாக்கி அதன் மூலம் மக்களை ஒருங்கிணைக்க முயன்றோம். வர்ட்ப்ரெஸ் மற்றும் லினக்ஸ் தொடர்ப்பான பயிற்சிக்கட்டுரைகள் எழுதி இணையத்தில் பதிவிட்டேன். பகுதிநேர வேலையாக, வர்ட்ப்ரெஸ் சார்ந்த இணைப்புச் செயலிகளுக்கு ஆவணமாக்கம் மற்றும் வாடிக்கையாளர் உதவி போன்ற வேலைகளை ஏற்றுக்கொண்டேன். என் தோழி, தன் நிறுவனத்தின் வேலைகளில் HTML/CSS பாகங்களை எனக்கு அளித்தார். வர்ட்ப்ரெஸ் உள்ளகத்திற்கு மென்பொருள் மற்றும் இணைப்புச் செயலிகளுக்கு தமிழ் மொழிமாற்றம் போன்றவற்றில் பங்களித்தேன். என் வீட்டின் வசதியான சூழலில் இருந்துகொண்டே, குழந்தைகள் நலத்தைப் பேணிக்கொண்டே, வர்ட்ப்ரெஸ்ஸைக் கற்றுக்கொள்ள முடிந்தது.

ஆனால் நாளடைவில் நிர்வாக மேல்வேலைகள் அதிகரித்ததால், இப்படிப் பலவற்றை செய்வது கடினமாயிற்று. எனவே நான் முழுநேர இணையவழி வேலைகளுக்கு விண்ணப்பிக்கத்தொடங்கினேன். என் முனைவர் பட்டம் இவ்வேலைகளுக்கு என்னை மிகையான தகுதியுடையவளாக்கின. கடைசியில் ப்ராஸ்ப்ரெஸ்(ProsPress Inc.) என்னும் நிறுவனத்தில் வேலை கிடைத்தது ஒரு அற்புதம்தான். நான் வூகாமர்ஸ் சபஸ்க்ரிப்ஷன்ஸ்(WooCommerce Subscriptions) என்னும் மின்வர்த்தக சந்தாக்கள் இணைப்புச் செயலியை உருவாக்கி நிர்வகிக்கும் வேலையை செய்யத்தொடங்கினேன்.

இரண்டு வருடங்களுக்குப் பின், ப்ராஸ்ப்ரெஸ் ஆட்டோமேட்டிக்(Automattic) நிறுவனத்துடன் இணைந்ததால், நான் வூடாட்டா(WooData) என்னும் வூகாமர்ஸ்(WooCommerce) சார்ந்த தரவுகளை ஆராயும் குழுவில் சேர்ந்தேன். இப்பொழுதும் என் ஆராய்ச்சித் தலைப்பு தொடர்பான வேலையில் நான் முழுமையாக ஈடுபடவில்லையென்றாலும், அவற்றைக் குறித்த என் அறிவு பத்து வருடங்கள் பின்தங்கியவையென்றாலும், நம்பிக்கை இழக்காமல் தினமும் என் வேலையில் கொடுப்பனவுகள், Hadoop, Scala மற்றும் Functional Programming போன்ற பல புதுப்புது விஷயங்களைக் கற்றுக்கொண்டிருக்கிறேன்.

இணைய வழி வேலையின் உபயத்தால் நான் இப்போது துபாயில் வாழ்கிறேன். நான் வர்ட்ப்ரெஸ்ஸைத் தேர்ந்தெடுத்தது குறித்து இன்று எனக்கு மிகவும் திருப்தியாக உள்ளது. ஏனெனில் அது என் விருப்பத்திற்கு மிகுதியாகவே எனக்கு அளித்துள்ளது.

கற்ற பாடங்கள்

இந்த நிகழ்வுகள் மூலம் நான் கற்றுக்கொண்டவையாவன:

  1. கடந்த காலம் கடந்துவிட்டது. நிகழ்காலமும் எதிர்காலமும் என் கையில்.
    எப்பொழுது வேண்டுமானாலும் நான் என்னைப் புதுப்பித்துக்கொண்டு என் எஞ்சிய வாழ்க்கையை அர்த்தமானதாக்கலாம்

  2. எனக்கு விருப்பமுள்ளவற்றை –– ஏனென்று புரியவில்லையென்றாலும்,
    எந்தவொரு எதிர்பார்ப்பும் இன்றித் தேர்ந்தெடுத்து அவற்றைச் செய்து கொண்டே இருப்பது மிகவும் முக்கியம்.
    பின்னால் அவற்றின் பொருள் புரியக்கூடும்.

எனவே, என் அன்பு வாசகர்களே! நீங்கள் இவ்வுலகின் எந்த மூலையிலிருந்தாலும், உங்கள் தற்போதைய நிலை எதுவாயினும், குறிப்பாக பிடித்தமான வேலையைத் தியாகம் செய்த தாயானால், என் கதை உங்களுக்கு ஊக்கமளிக்கும் என்று நம்புகிறேன். நிகழ்காலமும் எதிர்காலமும் உங்கள் கையில். எவ்விதத் தயக்கமும் இன்றி, புதிய முயற்சிகளை மேற்கொள்ளுங்கள். உங்கள் அன்றாட கடமைகளை நிறைவேற்றலாம்; ஆனால் உங்கள் வாழ்க்கைக்கு அணையிட வேண்டாம். அடி மேல் அடி வைத்து முன்னேறுங்கள். எதிர்காலம் நீங்கள் கனவிலும் காணாத வாய்ப்புகளை நிச்சயமாக வழங்கும்.

The post Keep walkin’ soldier Keep movin’ on – முன்னேறிடு முன்னேறிடு appeared first on HeroPress.

WPTavern: MemberPress Plugin Is Locking Users Out After Support License Expires

Wordpress Planet - Wed, 04/27/2022 - 03:42

The WordPress subreddit lit up this week with reports of MemberPress locking users out of the plugin’s admin if they do not renew their subscriptions. MemberPress is a popular membership plugin for WordPress. It is a commercial-only plugin starting at $179/year for one site, and there is no free version.

Reddit user @hamsternose opened the discussion with a first-hand account of having gotten locked out:

So I just discovered that MemberPress has changed its subscription model and will now cease to work the second your license expires and you need to reticence to get it working again.

This is the first WordPress plugin I have come across that works this way and I can’t say I am a fan. I support keeping plugins updated but I don’t believe this should be forced as it pretty much locks users in to meeting whatever price demands a developer chooses.

Is this the way forwards for WordPress Plugin developers now?

MemberPress’ updated renewal policy is clearly outlined in the plugin’s docs about what happens when a user’s subscription ends. The most controversial action is that customers will no longer “have access to any of the MemberPress admin screens.” The policy states:

Essentially, you’ll be able to keep using MemberPress on the front end of your site indefinitely when your subscription ends. However, you won’t be able to access the plugin’s admin screens or functions. Unless you renew, we’ll also no longer be able to support any changes or additions to your site.

Cutting off access to the plugin’s admin screens leaves users without the ability to manage the membership functions of their sites if their subscriptions lapse. This prevents users from doing things like issuing customer refunds, adding new members, managing memberships and site activations, among other actions.

This unorthodox approach is surprising in contrast to most other commercial plugins’ renewal policies, which usually terminate support and updates for those who do not renew. Cutting off functionality in this fashion could be especially problematic for agencies managing websites for clients using MemberPress. It’s something critical to business operations and prospective customers should be aware that the policy is markedly different from most other commercial WordPress products.

“I can understand a ‘no more updates for you’ policy, but shutting down something you paid for (at least once) is not good,” web developer Mauro Bono said in response to Post Status proposing WordPress businesses create a trade association to govern practices like this and admin notification infringements.

“I think companies should be allowed to do it, but I think the community will speak with its feet and move to a product that doesn’t do this kind of thing,” Trew Knowledge Sr. Product Owner Malcolm Peralty said. “It’s all about balance and I think this swings too far away from what I feel is ‘fair.'”

The GPL permits companies to sell open source software. In this case users are also purchasing, perhaps unknowingly, the code that shuts the plugin’s admin functions off as soon as they don’t pay up to renew. Some may consider this a questionable business practice in the WordPress ecosystem but it doesn’t violate the license.

In 2017, David Marín Carreño from the Spanish WordPress community, contacted the Free Software Foundation (FSF) regarding similarly structured business models for plugins. He asked if it is permissible for a plugin author to distribute a plugin under the GPL but lock access to some of the features using a validation code, which checks against a remote server. The FSF responded:

The GPL doesn’t prohibit locks or schemes such as these, as long as the recipient of the software can modify or remove them as per the terms of the GPL. It isn’t the lock itself that is prohibited; it’s restricting others from studying, modifying, or removing that lock that the GPL prohibits. It would also be a violation of the GPL to add licensing terms which prohibit the recipient of the software from removing such feature-lock schemes.

Despite the FSF validating the business model, many find the practice to be unsavory, as evident from the comments on the Reddit post. In a post titled The WordPress Way, Jason Coleman, co-founder and CEO of the Paid Memberships Pro (PMP) plugin, one of MemberPress’ chief competitors, seemed to indirectly address MemberPress’ renewal policy, saying some companies “begrudgingly apply the GPL license to their code.” Coleman described what he perceives to be “the WordPress way:”

Doing things the WordPress way means making all of our software free and open source, just like the core WordPress software.

It means the plugins we write to integrate with other plugins and third parties are hosted in the WordPress.org repository because that will incentivize both parties to maintain the plugin.

It means our code will continue to work as expected if your paid license expires.

It means providing simple one-line code solutions to disable our upsells or extra gateway fees.

It means using the WordPress coding standards so our code is more readable to developers used to reading WordPress-based code.

MemberPress founder Blair Williams has not yet responded to our requests for comment. There may be a reason or chain of experiences that led him to this renewal policy but the plugin’s documentation doesn’t elaborate on it.

In light of the recent discussions on Reddit and Twitter, Coleman’s promises to customers illuminates MemberPress and PMP’s contrasting values and business principles. This may be compelling for MemberPress customers who are looking for a different plugin after learning of the updated renewal policy.

“If a decision comes down to something that will make the software better and something that will make us more money, we choose the option that makes the software better,” Coleman said.

“For us that means embracing open source and the WordPress way, making our software available for free to get the most users and contributors, and building a business on top of the software we are making by adding value instead of artificially limiting our software and selling the cure.”

WPTavern: Building a “Polaroid” Image Block Style

Wordpress Planet - Wed, 04/27/2022 - 02:45

I am a child of the late ’80s and ’90s. Before we all had cameras built into our mobile phones—well, before mobile phones took off, really—families would lug around Polaroid cameras to capture those special moments. Even though I hated posing for awkward photos with my siblings, I am still nostalgic about the magic of film from a bygone era.

Now, I have grown old enough to see the return of physical prints, sparked primarily by Fujifilm Instax. They are at least popular in the journaling groups that I lurk around. I have yet to shell out the money for one of Fujifilm’s mini cameras or smartphone printers, but I am admittedly tempted. Perhaps it is a fad, but I am still pulled toward reliving that part of my youth.

Regardless of whether I own the physical equipment, I can always recreate Polaroid-style photos on the web. The WordPress block system makes it simple.

This Building with Blocks post will cater primarily to theme authors. However, DIY users can also try their hand at it. The tutorial will walk through the steps of creating a Polaroid-style image frame as a custom block style.

For this tutorial, I used Twenty Twenty-Two and WordPress 6.0 Beta 2. It should also work with WordPress 5.9. For other themes, you may need to adjust the colors.

Building the Block Style Polaroid Image block style.

Much of the fun I have had with the block system has been creating custom styles. They typically only take a few lines of code to transform blocks into something entirely different. The Polaroid style is the same.

The first step is to use the register_block_style() function to register a custom style via your theme’s functions.php:

add_action( 'init', 'tavern_register_block_styles' ); function tavern_register_block_styles() { register_block_style( 'core/image', [ 'name' => 'polaroid', 'label' => __( 'Polaroid', 'tavern' ) ] ); }

Once registered, it will appear as a selectable style for the Image block in the editor. However, it still needs a custom design. For that, you only need a bit of CSS.

Add the following to your theme’s stylesheet or, preferably, register it via wp_enqueue_block_style():

.wp-block-image[class*=is-style-polaroid] { box-sizing: border-box; padding: 1rem; background-color: #fff; box-shadow: 0 4px 10px 0 rgba( 0, 0, 0, 0.3 ), 0 0 4rem rgba( 255, 255, 235, 0.5 ) inset; } .wp-block-image[class*=is-style-polaroid] figcaption { margin-top: 1rem; margin-bottom: 0; }

That is literally it. Custom block styles are such easy wins that I do not understand why more theme authors are not including them. I had 70+ in my last theme project, and I was holding back—OK, so I may have gone a little overboard.

If you want to change the “age” of the photo, you can darken the inset shadow in the above CSS. It is a subtle effect by default, but feel free to tinker with it.

Keen-eyed readers may have noticed that I targeted [class*=is-style-polaroid] instead of .is-style-polaroid. There is a reason for that. It cuts back on the code for additional styles built on the same concept.

Bonus: Tilted Styles Left and right titled Polaroid Image styles.

A Polaroid-style frame is a fun effect, but we can take that one step more and add variations for tilting images left or right. Add the following to the existing tavern_register_block_styles() function created in the previous section:

register_block_style( 'core/image', [ 'name' => 'polaroid-tilt-left', 'label' => __( 'Polaroid: Tilt Left', 'tavern' ) ] ); register_block_style( 'core/image', [ 'name' => 'polaroid-tilt-right', 'label' => __( 'Polaroid: Tilt Right', 'tavern' ) ] );

For each of the “tilt” styles, you can use the transform CSS property along with the scale() and rotate() functions. I chose slight rotations of 2deg and -2deg, but you can push that as far as you want to get your preferred design.

.wp-block-image.is-style-polaroid-tilt-right { transform: scale( 0.99, 0.99 ) rotate( 2deg ); } .wp-block-image.is-style-polaroid-tilt-left { transform: scale( 0.99, 0.99 ) rotate( -2deg ); }

One fun effect is to remove the tilt transformation when a visitor hovers their mouse over the images. Use the following CSS for that:

.wp-block-image[class*=is-style-polaroid-tilt] { transition: all 0.5s ease-in-out; } .wp-block-image[class*=is-style-polaroid-tilt]:hover { transform: scale( 1, 1 ) rotate( 0 ); }

Let me know in the comments if you gave this block style a shot. If you really want to lean into the old-school Polaroid style, try it with a custom handwriting font for the caption. Also, please share any custom image-related designs if you have them.

WordPress.org blog: WordPress 6.0 Beta 3

Wordpress Planet - Tue, 04/26/2022 - 16:43

WordPress 6.0 Beta 3 is now available for testing!

This version of the WordPress software is under development. Please do not install, run, or test this version of WordPress production or mission-critical websites. Instead, it is recommended that you test Beta 3 on a test server and site. 

You can test WordPress 6.0 Beta 3 in three ways:

Option 1: Install and activate the WordPress Beta Tester plugin (select the “Bleeding edge” channel and “Beta/RC Only” stream).

Option 2: Direct download the beta version here (zip).

Option 3: Use WP-CLI to test: wp core update --version=6.0-beta3.
Do not use this option if your filesystem is case-insensitive.

The current target for the final 6.0 release is May 24, 2022, which is in less than a month! 

Additional information on the full 6.0 release cycle is available here.

Check the Make WordPress Core blog for 6.0-related developer notes in the coming weeks which will detail all upcoming changes.

See What’s in Beta 3

Since Beta 2, various items have been addressed, including (but not limited to): 

  • Twenty Twenty-Two: Implement alternate json files #55433
  • Fix duotone rendering in site editor #37727 
  • Create Comments Title block with simple styling #40419 
  • Navigation block: After choosing an option from Select Menu, focus after block render #40390
  • Add comment id to all comments inside comments query loop #40268
  • Add post-comments-form block to comments template #40256
  • Elements: Add styles to the footer before the block is rendered #37728
  • Add default comment status to discussion settings  #55567
  • Fix styles for nested elements (link color) #55567
  • Move wp_enqueue_block_style() to wp-includes/script-loader.php, for better consistency #55182, #55148
  • Move administration related hooks to admin-filters.php #54795
Update on the Webfonts API and Style Variations in Twenty Twenty-Two

A prior announcement for WordPress 6.0 Beta 1 included a reference to “Webfonts API: Manage local fonts with PHP or theme.json”, as a feature that would be included in the release. WordPress 6.0 Beta 3 will allow theme authors to use webfonts in theme.json, with a public API for plugins to register and enqueue webfonts available in a future version for WordPress. Beta 3 will also include three new style variations to the Twenty Twenty-Two default theme.

How to Help

Testing for issues is critical for stabilizing a release throughout its development. Testing is also a great way to contribute to WordPress. If you are new to testing, check out this detailed guide that will walk you through how to get started.

If you think you have run into an issue, please report it to the Alpha/Beta area in the support forums. If you are comfortable writing a reproducible bug report, you can file one on WordPress Trac. This is also where you can find a list of known bugs.

Thank you to the following contributors for collaborating on this post: @dansoschin  @webcommsat, @audrasjb

And now another WordPress haiku:

Release day is near
6.0 abounds with joy
New features soon here