#135 – Jonathan Bossenger on Enhancing WordPress Learning Experiences – WP Tavern

[ad_1] [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, enhancing WordPress learning experiences. 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 wptavern.com/feed/podcast. And you can copy that URL into most podcast players. If you have a topic that you’d like us to feature on the podcast, I’m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to wptavern.com/contact/jukebox, and use the form there. So on the podcast today, we have Jonathan Bossenger. Jonathan based in Cape town, South Africa, has been an integral part of the WordPress community for nearly a decade. Transitioning from software development to web, and then WordPress development, he found his passion in education. Since attending his first word camp in 2015, he has focused on creating educational content for WordPress developers. Now employed at Automattic as a developer educator, he contributes to the Learn platform, helping to train and guide new developers in the WordPress ecosystem. He’s on the podcast today to explain some of the ways that you can learn WordPress with up to date, freely available content. We discuss the goal of making WordPress learning accessible globally, especially for those who can’t afford expensive courses. The discussion gets into the transformative potential of the Learn WordPress platform, especially in the era of Playground, which will enable interactive coding practice without the need for external tools. Jonathan sees this as a game changer for web agencies, providing a streamlined training resource for new developers and conserving valuable time and resources. We cover Jonathan’s journey from software developer to developer educator, supported by his former employer, Castos. He shares the challenges of keeping educational content current amidst WordPress’s rapid evolution, and the importance of staying updated with WordPress core developments. The conversation also touches on the structured learning pathways, designed to guide learners from beginner to advanced levels. Segmented into user designer and developer categories. The professionalism of WordPress projects like Learn, and the essential role of contributors in translating and internationalising content to reach a broader audience ,comes under the microscope as well. And Jonathan reflects upon the dynamic nature of open source communities, stressing the need for decisive leadership in software development decisions from time to time. Towards the end, we talk about the many ways that you can assist the Learn project, and there are many more ways than you might imagine. If you’re curious about how people learn about WordPress, and how you can be a part of that project, this episode is for you. If you’re interested in finding out more, you can find all of the links in the show notes by heading to wptavern.com/podcast, where you’ll find all the other episodes as well. And so without further delay, I bring you Jonathan Bossenger. I am joined on the podcast today, once more by Jonathan Bossenger. Hey, Jonathan. [00:03:59] Jonathan Bossenger: Hello, I’m back. [00:04:01] Nathan Wrigley: Thank you so much for coming on the podcast today. We’re going to be talking about a really important subject, and a subject which I think is getting more importance. We can get into the politics or what have you of that in a moment. Before we begin the conversation all about Learn, and what’s going on over there, Jonathan, for those people who don’t know who you are, do you want to just give us your brief potted history? Maybe your current job, and your history with WordPress and so on? [00:04:24] Jonathan Bossenger: Sure. So for those who don’t know, my name is Jonathan Bossenger. I live in Cape Town in South Africa, which is the country right at the tip of Africa. I have been involved in the WordPress community now for about nine years. I went to my first WordCamp in Cape Town in 2015, and I am a web developer, originally a software developer, then a web developer, then a WordPress developer. And I’m now transitioned to this wonderful new thing that I call, or at least people call developer educator. I’m currently employed at Automattic, I’m sponsored to work full-time with the WordPress training team, and my job is basically creating educational content for WordPress developers. So everything that is on Learn, that has to do with WordPress development, I have got some hand in somewhere there. [00:05:05] Nathan Wrigley: Was this a pivot that you kind of had as part of your north star five or six years ago, or is this very much an evolution that kind of happened to you without it meaning to be the case? [00:05:16] Jonathan Bossenger: I did pivot from software development to developer education kind of organically, but also with a little bit of support. You’ll appreciate the story, Nathan. So as you will know, I was working at Castos for a number of years. I was the initial developer that Craig hired when we first kicked Castos off. I became lead developer as the company grew. And in conversations that I had with Craig, as my CEO, as the company grew, and as we run about the time the TinySeed thing happened and Craig had some money that he could spend to grow the team and all those things. He sat me down and he said to me, right, what does the future look like for you? As the company grows, we’ve got potential to get big, what does the future look like? And he said the word engineering manager, and the term CTO came up, and I realised in those conversations that that was not what I wanted to be doing. As much as I enjoyed developing software, I’m not great at leading people. I

Continue reading

Learning to Build Block Editor Blocks, Part 2

[ad_1] I ended the last article with a functioning block that shows one thing in the editor and another thing on the frontend. The reason for doing so was so we could see how to put together the basic foundation of a plugin for the Block Editor. Now that we’re at this point, it’s much easier to start talking about things related to the Editor, things related to the frontend, how to start serializing data, how to start reading data, and so on. But because I’m trying to do this entire series as a backend engineer creating blocks – which is generally delegated to frontend development – I want to take it step by step. In the last article, I wrote: [T]he thing we’re going to look at doing next is adding styles for both the frontend and the editor and some basic functionality to the block. As I continue to write about learning to build block editor blocks, we’ll continue with looking at adding styles to both the backend and the frontend. In this article, we’re going to cover: adding controls to the block in the editor so we can control its placement within WordPress itself (or even remove it from the editor), ensuring what we see in the editor is what we see on the frontend Like last time, there are going to be things we have to dive into that will require reference material and links to external resources. But consider that part of the journey of learning to build blocks. Block Editor Blocks: Editing and Saving (Or Viewing) The first thing I want to mention is, as I wrote about in the first article, the two functions with which we’ll be working are edit and save. Personally, I think the functions are unfortunately named. It’s not that they don’t represent what they do, but they don’t represent just what they do. In other words, they do more than just allow us to edit and save content. 💭 A Digression on Function Names edit actually isn’t all of that bad since that’s the function responsible for allowing us to actually edit content. But save is overloaded. Not only does it read saved content, it renders it, too. And, as we’ll see in future posts, other functionality. So if you’re used to thinking in terms of how backend functionality works then you wouldn’t be far off in thinking something like: edit is for editing the content that’s saved in some type of data store, save is where the data is sanitized and written into said data store, read is where the data is retrieved and validated before displaying it, and render or display is a function for finally displaying it to the user. But that’s now how blocks work. At least, not at the time of this writing. Instead, we just work with edit and save. So that’s what I’m going to use in the rest of the article. You can read more about this in the Reference material at the end of the article. 🗺 Where We’re Going For starters, we’re going to do the following: add functionality to allow the block to be manipulated within WordPress, write styles to style our block, introduce them to the editor, introduce them to the frontend The reason for doing this is to give a concrete example as to how various files and functions play a role in block development. Granted, there may be a time in which you want something in the editor to appear one way and not on the frontend but the goal I’m working towards with this series of articles getting functionality added to the editor and presentation the same across what the author sees and what the user sees. Functionality Recall that in the last article, the edit function looked like this: edit: () => { return ( “This is content from the editor.” ); }, And this was sufficient for the demo but it only renders a string. Let’s make it a little more advanced such that it renders an HTML element. To that though, we’re going to have to get more into WordPress-specific block development. As usual, I’ll link to all of this in the reference material at the end of the article but I’ll explain each step as I work through it. First, I’m going to add some functionality to my block. Specifically, I’m going to the block the ability to be removed, to be moved, or to more generally be modified the in the context of the editor. To this, I need to add a few things. At the top of index.js, I need: import { useBlockProps } from ‘@wordpress/block-editor’; Then, in the edit function, update it to look like this: edit: () => { const blockProps = useBlockProps({ className: ‘tm-block-demo-container’ }); return ( <div {…blockProps}> This is content from the editor. </div> ); } Obviously, there are a few things in the code above that aren’t yet explained (such as blockProps and className) but I’ll get the explanation momentarily. Styles Let’s introduce some basic styles to the Editor. For example, let’s have the block include the following: a background color, a border and border color, a specific font color, a specific width, some padding First, let’s create an index.scss file in the src directory. This file will belong with other files like block.json, block.php, and index.php. Before adding any styles, though, we need to make sure we have the proper selector. So at this point, go ahead and write the following code in index.scss: .tm-block-demo-container { color: #fff; background: #0d63fd; border: 1px solid #0a58ca; font-weight: bold; padding: 0.5em; width: 100%; } Then in the same file, include the following (I like to place it above the registerBlockType function call): import ‘./index.scss’; The Code Thus Far Note at this point, the following is happening in the code: We’re now using @wordpress/block-editor which is a package that allows us to work with blocks within the context of the block editor (it

Continue reading

StellarWP Acquires Learning Management System LearnDash – WP Tavern

[ad_1] StellarWP announced today that it acquired LearnDash, a learning management system (LMS) for WordPress. The product allows educators to create online courses, quizzes, and dynamic content. LearnDash will continue to operate autonomously, keeping its team intact. In May, Liquid Web launched its new umbrella brand, StellarWP, alongside its acquisition of Impress.org and its flagship product, GiveWP. iThemes, The Events Calendar, Restrict Content Pro, and Kadence WP are included in this family. Each of the brands operates independently. Essentially, StellarWP functions as a “branded house” but is very much a “house of brands,” according to Chris Lema, who will be switching roles and taking the General Manager position for LearnDash. The LearnDash acquisition is StellarWP’s largest to date, but the company did not provide a specific dollar amount. The LMS market size grew to $10.84 billion in 2020. It is projected to increase to over $13 billion in 2021, according to Fortune Business Insights. However, when asked why the company was jumping into the space, Lema talked about the vision. “The way I think about things is less about the bottom line and more about the larger vision,” he said. “At Liquid Web, we believe that things will continue to get more abstracted for customers. They will want, less and less, to deal with the complexities of hosting. They don’t really want ‘managed’ hosting or even ‘managed WordPress’ hosting. They want a hosted solution. In other words, they want a solution that works. If they need it hosted, great. If they already have a host, great. So we’ve been focused on building a solutions-orientation toward folks who are doing digital commerce or are building digital commerce solutions for their customers.” He said that LearnDash fits perfectly into that vision for the company. In some ways, the global COVID-19 pandemic that began in 2020 may have hit the fast-forward button in many online sectors. The landscape shifted for small and large businesses. More people have had opportunities to take online courses or even create their own. “Yes, we saw a dramatic increase in the take rate on online learning platforms across the entire space,” said Lema. “Last year saw a COVID dip for many, but for online learning, it was a bump. That said, I think we’re seeing the numbers drop back down a bit into a more normal but elevated range based on what happened last year. And most importantly, more people than ever have tried their hands at online learning, and I don’t think that’s going to stop.” Now that Liquid Web and StellarWP have built a library of multiple products, one question is how the company might begin to tie them together. There are some easy wins with cross-product integration that would fit into the vision of selling solutions. “Yes, we think so too,” said Lema. “RCP and LearnDash, GiveWP and LearnDash, LearnDash and Nexcess, and more. I think we’ll see a lot of collaborations across the StellarWP brands. But to be clear, each brand runs independently, so for LearnDash, we’re still focused on all sorts of other integrations, from chat to testimonials to CRM to better Zoom integration.” While he did not offer any specifics, it is likely in the cards in some form. Each of these is robust a product that, when used together, can provide a powerful toolset for building commerce-based websites. Lema wrote a more in-depth post on his personal blog about integrations being a vital strategy for business growth. He shared a riddle that he likened to the WordPress ecosystem. “I thought about it because it’s a bit of a parable for how I see so many product owners in the WordPress ecosystem build their plugins – as if there’s no one else in the world, building anything else that a customer might use with their product,” he wrote. We will have to wait to see what sort of integrations LearnDash might have in the future. For now, the team is working on the roadmap for its updated course grid and version 4.0 feature release. The update should include dynamic learning paths. “The reality in online learning is that students don’t move in a linear fashion through material like the instructor always hopes,” said Lema. “Or maybe an instructor wants to support an almost choose-your-own-adventure approach. I know in my coaching, I don’t move everyone through the same lessons in the same order. So we’re excited to innovate in this space.” Like this: Like Loading… [ad_2] Source link

Continue reading

WordPress Learning Curve in 2021 • WPShout

[ad_1] There’s been some worthwhile discussion of the WordPress learning curve lately. My “main link” here is the article from Courtney Robertson. Though I’d also point to the one of the topic from Justin Tadlock at WP Tavern. I thought Courtney’s summary rang true: While the block editor experience has improved the content creation and even website assembly side of this process, it can be said that the learning curve for developing with code for WordPress via plugins or themes has become more complex. This is especially true when planning training materials, and retraining developers who began without these extra layers of complexity. I feel like the amount of JavaScript, not to mention the need to be kind of good at both React/JS & PHP has changed the dynamics of WordPress deveopment from when I started learning around 2007. And though I’m not sure much could be done to avoid it, I don’t envy those starting out today. But I do think its possible. Mostly it just requires two things: more people sharing what they’re learning, and being patient while you’re learning. Image credit: Patrick Mize Visit courtneyengle.com → [ad_2] Source link

Continue reading