Can You Really Build Gutenberg Blocks Without React? | No Music ๐Ÿ”— **Source:** [Can You Really Build Gutenberg Blocks Without React? | No Music](https://www.youtube.com/watch?v=vX1TkFYBMqs) > [!note]+ Document Notes > tags: [gutenberg, php, blocks, wordpress] > author: UpTick > source: YouTube > reference: [https://www.youtube.com/watch?v=vX1TkFYBMqs] > date created: 2025-01-10 14:30 > > # ๐Ÿท๏ธ Title: Can You Really Build Gutenberg Blocks Without React? | No Music > <!-- deep-read:sections start --> ## ๐Ÿงฐ Action Inbox - [H1] Test PHP-only blocks with Gutenberg plugin 22.4+ โ€” requires experimental features #gutenberg - [H2] Explore auto-generated controls from attribute definitions โ€” coming in next release #development - [H3] Research security practices for streaming/content creation โ€” prevent malicious links #security ## ๐Ÿงญ Table of Contents - [๐Ÿ“ Summary](#-summary) - [๐Ÿ“– Main Content](#-main-content) - [๐Ÿ—’๏ธ Notes](#๏ธ-notes) - [๐Ÿ“š References](#-references) - [๐Ÿ—ฃ๏ธ Paraphrase](#๏ธ-paraphrase) - [๐Ÿ“ฐ Newsletter](#-newsletter) - [โœ… Action Items](#-action-items) - [๐Ÿงช Hypotheses](#-hypotheses) - [๐Ÿ“Š Methodology](#-methodology) - [โ“ Questions](#-questions) - [๐Ÿ”ฎ Future Research](#-future-research) - [๐Ÿ’ก Implications](#-implications) - [๐Ÿง  Learning Styles Assessment](#-learning-styles-assessment) - [๐Ÿ“Š Accessibility Assessment](#-accessibility-assessment) - [๐ŸŒ DEIB Assessment](#-deib-assessment) - [โœ… Logical Validity](#-logical-validity) - [๐Ÿ›ก๏ธ DARVO Analysis](#-darvo-analysis) - [๐ŸŽฏ Conclusion](#-conclusion) ### ๐Ÿ”— References - [PHP Block Development](https://developer.wordpress.org/block-editor/) - [Gutenberg Plugin](https://wordpress.org/plugins/gutenberg/) ## ๐Ÿ“ Summary - Demonstration of creating Gutenberg blocks using only PHP without React or JavaScript build processes - Requires Gutenberg plugin version 21.8+ for PHP-only block registration with `autoregister` feature - Shows basic block creation, styling, and attribute handling through server-side rendering - Upcoming features in version 22.4 will add auto-generated sidebar controls - Addresses developers who prefer PHP over JavaScript/React workflows ## ๐Ÿ“– Main Content This stream demonstrates the emerging capability to create WordPress Gutenberg blocks entirely in PHP without requiring React knowledge or JavaScript build processes. The feature leverages the `autoregister` parameter in PHP block registration to automatically generate editor interfaces from block attributes. The approach uses server-side rendering for both editor and frontend display, making blocks accessible to PHP developers who prefer to avoid JavaScript tooling. While currently requiring the Gutenberg plugin (versions 21.8+), these features are planned for WordPress 7.0. Key limitations include simplified attribute controls and potential performance considerations with server-side rendering. However, upcoming releases promise auto-generated sidebar controls based on attribute definitions. ## ๐Ÿ—’๏ธ Notes #### โฑ๏ธ [00:00](https://youtu.be/vX1TkFYBMqs?t=0) โ€” [H1] Stream introduction and setup - Key idea: Starting demonstration of PHP-only Gutenberg blocks - Evidence: "Today we're talking about registering blocks only with PHP which is possible in the Gutenberg plugin right now" #### โฑ๏ธ [03:45](https://youtu.be/vX1TkFYBMqs?t=225) โ€” [H2] Historical context of block development - Key idea: Blocks originally used more PHP before shifting to JavaScript-heavy approach - Evidence: "When blocks first came out way back in the day, we did everything inside of PHP" #### โฑ๏ธ [05:30](https://youtu.be/vX1TkFYBMqs?t=330) โ€” [H1] Gutenberg plugin requirement - Key idea: PHP-only blocks require Gutenberg plugin for experimental features - Evidence: "You just have to have the plugin enabled because it is newish" #### โฑ๏ธ [08:15](https://youtu.be/vX1TkFYBMqs?t=495) โ€” [H2] Autoregister feature demonstration - Key idea: The `autoregister: true` parameter enables PHP-only block registration - Evidence: "This is the important part. So, we want to set that to true" #### โฑ๏ธ [12:30](https://youtu.be/vX1TkFYBMqs?t=750) โ€” [H3] Plugin vs core WordPress discussion - Key idea: Gutenberg plugin provides cutting-edge features before core integration - Evidence: "The plugin is the newest development... published every two weeks" #### โฑ๏ธ [18:45](https://youtu.be/vX1TkFYBMqs?t=1125) โ€” [H2] Block metadata and icon configuration - Key idea: PHP blocks support same metadata as JSON-defined blocks - Evidence: "This mirrors a lot of what you're going to see in like a block JSON file" #### โฑ๏ธ [22:00](https://youtu.be/vX1TkFYBMqs?t=1320) โ€” [H2] Block supports and controls - Key idea: PHP blocks can opt into WordPress block supports like spacing and colors - Evidence: "My guess is that we can add any control that you can opt into with a block" #### โฑ๏ธ [28:30](https://youtu.be/vX1TkFYBMqs?t=1710) โ€” [H3] Theme.json compatibility - Key idea: PHP blocks respect theme.json settings for block supports - Evidence: "It shouldn't override anything... you're defining them in PHP which under the hood is what's happening" #### โฑ๏ธ [35:15](https://youtu.be/vX1TkFYBMqs?t=2115) โ€” [H1] Benefits of PHP-only approach - Key idea: Eliminates need for build processes and React knowledge - Evidence: "Not everyone likes build processes. Not everyone likes React. Sometimes you don't even need it" #### โฑ๏ธ [42:00](https://youtu.be/vX1TkFYBMqs?t=2520) โ€” [H2] Server-side rendering considerations - Key idea: PHP blocks use server-side rendering which has performance implications - Evidence: "It's using the new... use server side render hook" #### โฑ๏ธ [48:30](https://youtu.be/vX1TkFYBMqs?t=2910) โ€” [H1] Upcoming attribute controls in 22.4 - Key idea: Next Gutenberg version will add auto-generated sidebar controls - Evidence: "String with enum is a select field... you pass it an enum and this would be the select options" #### โฑ๏ธ [55:45](https://youtu.be/vX1TkFYBMqs?t=3345) โ€” [H2] CSS and script enqueueing - Key idea: PHP blocks support traditional WordPress asset enqueueing - Evidence: "You can do it... we have a series of styles handles" #### โฑ๏ธ [62:00](https://youtu.be/vX1TkFYBMqs?t=3720) โ€” [H3] Current limitations and future potential - Key idea: Feature completeness depends on simple vs complex attribute controls - Evidence: "Feature-wise it's basically complete if you're okay with a very simple user interface" ## ๐Ÿ“š References - [WordPress Block Editor Handbook](https://developer.wordpress.org/block-editor/) - [Gutenberg Plugin GitHub](https://github.com/WordPress/gutenberg) - [WordPress 7.0 Development Roadmap](https://make.wordpress.org/core/) ## ๐Ÿ—ฃ๏ธ Paraphrase - PHP-only Gutenberg blocks eliminate the need for JavaScript build processes by using server-side rendering and automatic registration features - The Gutenberg plugin (version 21.8+) provides experimental features that will eventually merge into WordPress core version 7.0 - While currently limited to simple attribute controls, upcoming releases promise auto-generated sidebar interfaces based on attribute definitions ## ๐Ÿ“ฐ Newsletter **PHP-Only Gutenberg Blocks: Skip the Build Process** Great news for PHP developers! You can now create Gutenberg blocks without touching React or JavaScript build tools. The Gutenberg plugin's new `autoregister` feature lets you define blocks entirely in PHP with automatic editor interface generation. **Key Benefits:** - No webpack, npm, or Node.js required - Familiar PHP development workflow - Server-side rendering for both editor and frontend - Full WordPress block supports integration **Getting Started:** Install the Gutenberg plugin and set `autoregister: true` in your block registration. Coming to WordPress 7.0! Resources: [Block Editor Handbook](https://developer.wordpress.org/block-editor/), [Gutenberg Plugin](https://wordpress.org/plugins/gutenberg/), [WP-CLI](https://wp-cli.org/) ## โœ… Action Items #### WordPress - Core: Test PHP-only block registration features in development environments - Core Program Team: Document PHP block development patterns and best practices - Documentation: Create comprehensive guides for PHP-only block development workflows - Community: Share PHP block examples and use cases with developer community #### DevRel - Developer advocacy: Promote PHP-only blocks to backend-focused developers - Education: Create workshops comparing JavaScript vs PHP block approaches - Developer experience: Improve PHP block documentation and examples - Community engagement: Gather feedback on PHP block developer experience ## ๐Ÿงช Hypotheses - PHP-only blocks will increase Gutenberg adoption among backend developers who avoid JavaScript - Server-side rendering performance will be acceptable for most block use cases - Auto-generated controls will cover 80% of common block attribute scenarios - Theme.json integration will work seamlessly with PHP-defined block supports ### ๐Ÿ“Š Methodology - Performance testing: Compare server-side vs client-side rendering speeds - Developer surveys: Measure adoption rates among PHP vs JavaScript developers - Feature parity analysis: Document gaps between PHP and JavaScript block capabilities ### โ“ Questions - Will server-side rendering performance scale with complex blocks? - How will auto-generated controls handle advanced UI components? - Can PHP blocks achieve feature parity with React-based blocks? ### ๐Ÿ”ฎ Future Research - Integration patterns with existing PHP frameworks - Performance optimization strategies for server-side rendering - Developer experience improvements for PHP block workflows ### ๐Ÿ’ก Implications - Practice: Enables PHP developers to create blocks without JavaScript knowledge - Education: Requires new documentation and training materials for PHP workflows - Performance: Server-side rendering may impact editor responsiveness - Adoption: Could significantly increase block development among PHP-focused developers ### ๐Ÿง  Learning Styles Assessment Reading level estimate: 10th Grade #### ๐Ÿ‘€ Visual learners - Present: Code examples, block editor screenshots, live demonstration - Improve: Architecture diagrams showing PHP vs JavaScript block flows #### ๐Ÿ”Š Aural learners - Present: Live stream format with verbal explanations - Improve: Audio summary of key concepts and implementation steps #### ๐Ÿ—ฃ๏ธ Verbal learners - Present: Clear terminology, step-by-step explanations, analogies - Improve: Glossary of PHP block-specific terms #### ๐Ÿงฉ Kinesthetic learners - Present: Live coding demonstration, hands-on examples - Improve: Downloadable starter templates and exercises #### ๐Ÿง  Logical learners - Present: Feature comparison tables, version timelines - Improve: Decision trees for choosing PHP vs JavaScript approaches #### ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Social learners - Present: Live chat interaction, community discussion - Improve: Developer forums and collaboration opportunities #### ๐Ÿง˜โ€โ™€๏ธ Solitary learners - Present: Self-contained examples, independent exploration - Improve: Self-assessment quizzes and reflection prompts #### ๐ŸŒฟ Naturalistic learners - Present: Evolution from historical block development approaches - Improve: Ecosystem thinking about WordPress development trends ### ๐Ÿ“Š Accessibility Assessment #### Screen reader semantics - Present: Clear heading structure in code examples - Improve: ARIA labels for code demonstrations #### Keyboard navigation - Present: Standard video player controls - Improve: Keyboard shortcuts for code navigation #### Contrast and readability - Present: High contrast code editor themes - Improve: Larger font sizes for streaming #### Text resizing and reflow - Present: Responsive code examples - Improve: Mobile-friendly documentation #### Media and captions - Present: Live stream format - Improve: Auto-generated captions, transcript availability #### Standards reference - Follows WCAG 2.2 AA for code demonstration clarity ### ๐ŸŒ DEIB Assessment #### Cultural breadth - Present: English-language demonstration - Improve: Multilingual examples, global developer perspectives #### Inclusive language - Present: Technical terms clearly defined - Improve: Avoid assumptions about developer background #### Neurodiversity support - Present: Step-by-step approach, clear structure - Improve: Multiple explanation methods, flexible pacing #### Representation - Present: Focus on technical content - Improve: Diverse developer use cases and examples #### Psychological safety - Present: Encouraging tone for different skill levels - Improve: Clear beginner-friendly alternatives ### โœ… Logical Validity #### Strong reasoning - Deductive strength: Clear cause-effect relationships in code examples - Inductive strength: Generalizes from specific examples to broader patterns - Causal reasoning: Links features to developer benefits - Analogical strength: Compares to existing development patterns #### Fallacies - None identified: Technical demonstration remains factual #### Tone of voice - Overall tone: Enthusiastic and educational, encouraging experimentation ### ๐Ÿ›ก๏ธ DARVO Analysis - No concerning patterns identified - Straightforward technical education content - Appropriate acknowledgment of limitations and experimental nature ## ๐ŸŽฏ Conclusion PHP-only Gutenberg blocks represent a significant step toward making block development accessible to PHP developers without JavaScript expertise. While currently requiring the Gutenberg plugin and having some limitations around complex controls, the feature promises to broaden the WordPress developer ecosystem. The upcoming auto-generated controls and eventual core integration in WordPress 7.0 will make this a viable alternative to React-based block development for many use cases. ## ๐Ÿงฑ Refactor Appendix ### ๐Ÿ“š Literature Split Pad Purpose: Stage CEE units that become Literature notes. Split level: H3 ### [H1] PHP blocks eliminate JavaScript build requirements > [!quote] [Can You Really Build Gutenberg Blocks Without React?](https://www.youtube.com/watch?v=vX1TkFYBMqs) by [[UpTick]] via [[YouTube]]. Published 2025-01-10. Accessed 2025-01-10. > "Not everyone likes build processes. Not everyone likes React. Sometimes you don't even need it." Demonstrates alternative development path for WordPress developers preferring server-side approaches over client-side JavaScript frameworks. [view highlight](https://youtu.be/vX1TkFYBMqs?t=2115#H1) #gutenberg #php ID:rw_php_blocks_001 ### [H2] Autoregister enables server-side block generation > [!quote] [Can You Really Build Gutenberg Blocks Without React?](https://www.youtube.com/watch?v=vX1TkFYBMqs) > "The autoregister thing that we want... this block does not exist without it." Core mechanism allowing PHP-only block registration through Gutenberg plugin experimental features. [view highlight](https://youtu.be/vX1TkFYBMqs?t=495#H2) #wordpress #development ID:rw_php_blocks_002 --- ### ๐Ÿ”– Atomic Split Pad (Zettel Candidates) Purpose: Promote reusable claims into Atomic notes. Split level: H4 #### [Z1] Server-side rendering trades performance for simplicity - Applies to blocks with minimal interactivity requirements - Pointer to 42:00 performance discussion - Links: [[Block-Performance]] [[Server-Side-Rendering]] #### [Z2] Auto-generated controls reduce development complexity - Limited to simple attribute types in current implementation - Pointer to 48:30 upcoming features - Links: [[Block-Attributes]] [[Developer-Experience]] --- ### โœ๏ธ Fleeting Queue Purpose: Capture quick actions for Fleeting notes. - [F1] Test PHP blocks with WP 7.0 beta โ€” core integration timing #fleeting #testing - [F2] Compare PHP vs JS block performance โ€” server-side rendering impact #fleeting #research - [F3] Document PHP block security practices โ€” prevent malicious code execution #fleeting #security --- ## Full Transcript [00:00] Hello. Hey, Karolina. How's it going?<br>[00:05] Good to see you.<br>[00:08] Good to see you.<br>[00:11] Oh, my microphone's over here again. I<br>[00:13] did it again. Every time I start a<br>[00:14] stream, I always forget I have a<br>[00:15] microphone and that I need to say that I<br>[00:17] use to communicate to the world. And so,<br>[00:20] yeah, there's that. Anyhow, awesome.<br>[00:26] Let's see. Bad dude court is here as<br>[00:28] well. is what is going on?<br>[00:38] >> Bad duda.<br>[00:41] Bad duda court.<br>[00:49] Happy 2020. Oh. Oh. Hey.<br>[01:00] So good. Oh boy. Duda. Yes. Hello. Uh<br>[01:04] Sashin Raj CP from LinkedIn. Um how's it<br>[01:08] going? Um Albus original. Good to see<br>[01:12] you. Bad dude cord. Good to see you.<br>[01:14] Somebody else chatted. Who? Cross keys.<br>[01:16] Cross keys. No, you don't have to touch<br>[01:19] react if you don't want.<br>[01:25] It's getting it's getting<br>[01:29] it's awesome.<br>[01:31] Um,<br>[01:33] cross keys. No. So, the idea today so<br>[01:35] today we're talking about registering<br>[01:38] blocks only with PHP which is possible<br>[01:41] um<br>[01:44] in the Gutenberg plugin right now<br>[01:45] because it is it is not really uh<br>[01:49] functional. So, okay. So, here's the<br>[01:50] history. Here's some history. So like<br>[01:52] when when blocks first first came out<br>[01:53] way back in the day, right? We did<br>[01:55] everything inside of PHP and then we did<br>[01:57] have to like we added a couple<br>[01:59] JavaScript files to to handle the the<br>[02:01] the editor experience, right? Um and and<br>[02:05] the um like the save and the edit, but<br>[02:07] it was all pretty much done inside of<br>[02:08] PHP. So like you you would run you would<br>[02:11] run this sort of thing, right? Um like I<br>[02:14] don't even I don't even have an old old<br>[02:16] way of registering it. But what we can<br>[02:19] do now<br>[02:21] uh is we can do this entirely in in in<br>[02:25] PHP without JavaScript at all. Dave<br>[02:26] Martin, hi. Uh thanks for saying hey<br>[02:29] from Bloomington, Indiana. Uh over there<br>[02:32] on on the LinkedIn. Appreciate you. Um<br>[02:36] yeah, so this there's there's some setup<br>[02:39] here. So what we have to do I have all<br>[02:41] these tabs and we're going to get to it<br>[02:42] all. I'm going to get rid of that. What<br>[02:44] is this? Is this it? Okay. So, um, going<br>[02:47] to go to my plugins page. I'm going to<br>[02:49] go So, I have Good Gutenberg installed.<br>[02:51] I don't think I have any experiments<br>[02:53] enabled. So, let's just check that. I'm<br>[02:56] pretty sure there's no medical<br>[02:58] experiments enabled,<br>[03:01] right? Okay. So, there is not. So,<br>[03:04] that's cool. So, you just have to have<br>[03:06] the plugin enabled. And that is because<br>[03:09] it is uh newish. Like the way it works<br>[03:12] now is new. So, um, if I were to turn<br>[03:15] this plugin off.<br>[03:17] All right, let me just show you. So, I<br>[03:19] have this really simple,<br>[03:22] um, plugin. Hey, Sashin, Raj, we're over<br>[03:25] here in in Twitch with the chat if<br>[03:27] everyone wants to come over there and<br>[03:29] chat, but otherwise, I can say hi to<br>[03:30] you. I see it. I I see you.<br>[03:35] All right. So the important feature here<br>[03:37] that we need is this dudad this dio<br>[03:40] right here which is called autoregister.<br>[03:43] I believe autoregister I believe if I<br>[03:47] were to make this false<br>[03:50] this block would no longer<br>[03:52] appear.<br>[03:54] So it's the autoregister thing that we<br>[03:57] want. Yeah. So so this is this this<br>[04:01] block does not exist. Right.<br>[04:04] Uh, I'm going to make some changes here.<br>[04:05] This is going to be Twitch. This is<br>[04:08] going to be uh PH PHP only block. Thank<br>[04:12] you, GitHub Copilot. So, this is the<br>[04:14] important part. So, we want to set that<br>[04:15] to true, right? So, the rest of this<br>[04:18] stuff I think we we can just hide this.<br>[04:21] Let's see. I I don't even know what's<br>[04:23] what's um Oh, maybe I need to have maybe<br>[04:26] something needs to be<br>[04:28] Let's check. I don't know what what what<br>[04:30] we need to have enabled. I'm assuming<br>[04:32] probably title. Oh,<br>[04:35] do you know why that error fired? I'll<br>[04:37] tell you why that error fired. You just<br>[04:40] wait. Because I change the name of my<br>[04:42] block. So, I'm going to refresh this.<br>[04:44] I'm going to uh refresh this<br>[04:49] and I'm going to go in here. I'm going<br>[04:51] to look in widgets because that's where<br>[04:53] it should be. Um where's widgets? Okay.<br>[04:56] So, it doesn't look like it's showing up<br>[04:57] in there anywhere.<br>[05:01] I don't see it. Oh, you know. Okay. So,<br>[05:03] Twitch PHP only. So, so that shows up<br>[05:05] right there. So, that's kind of ugly,<br>[05:08] right? And this was kind of the<br>[05:08] experience prior to 22.3, which is the<br>[05:12] latest version of Gutenberg. Uh 21.8 is<br>[05:15] when I believe this was actually added,<br>[05:17] but that's kind of a poopy experience,<br>[05:19] right? Like there's no can't see see<br>[05:22] what it is. Do you want me to zoom that<br>[05:23] in a little bit? Maybe I'll do that. So,<br>[05:26] now we have all this awesome metadata.<br>[05:28] So, we can actually do this. We can<br>[05:31] change the icon. Let's make this the<br>[05:33] smiley icon, which is my favorite.<br>[05:38] All right. And uh so we'll save this. So<br>[05:41] now we can start seeing that we can we<br>[05:43] can build this out a lot nicer.<br>[05:46] Loading and loading. I have it in here<br>[05:47] twice apparently. We go rid of that.<br>[05:50] Right. So now we can see we have this<br>[05:52] custom title.<br>[05:56] Cross keys has a question. And how<br>[05:59] painful is it switching from core<br>[06:01] Gutenberg to plug-in Gutenberg?<br>[06:04] Um, that is a interesting question. So<br>[06:10] it<br>[06:13] the way to think of it is well this is<br>[06:15] how I think of it. So the the plug-in is<br>[06:18] the the newest development, right? Is is<br>[06:20] how is the is the new features that are<br>[06:22] being worked on and that's it's<br>[06:24] published every two weeks. So you know<br>[06:26] week one we have a release candidate<br>[06:28] that that goes live and that's when the<br>[06:30] all all the packages are updated and<br>[06:31] then week two we get a new version of<br>[06:33] the plugin. So the version of of the<br>[06:35] plug-in adds to core let's think of it<br>[06:38] that way. It will have features that you<br>[06:40] can use that you can opt into. Okay.<br>[06:45] Um yeah sure. So it's not painful<br>[06:49] because unless you're using the the<br>[06:53] cutting edge stuff that is experimental<br>[06:57] that is not finished<br>[06:59] um you're not really going to hurt<br>[07:01] yourself too much right if you keep up<br>[07:04] with the versions of Gutenberg you can<br>[07:08] test these features and then uh it's not<br>[07:12] no it's not technically stable the<br>[07:14] entire plug-in is not technically stable<br>[07:16] certain features will be stable um and<br>[07:20] and and and added too. So, it's not like<br>[07:23] if you enable this all of a sudden<br>[07:25] everything's going to break. If you<br>[07:27] enable it and don't do anything with the<br>[07:29] new a APIs there, like there might be<br>[07:32] some things that that like there's<br>[07:35] there's backwards compatibility<br>[07:37] that always comes into play. You're not<br>[07:39] going to enable the the Gutenberg plugin<br>[07:41] and then just and WordPress is not going<br>[07:43] to work. That's never going to happen.<br>[07:45] Now what might happen is you enable the<br>[07:47] Gutenberg plugin. You come over to the<br>[07:49] experiments here and you decide uh you<br>[07:53] you decide that you want to enable some<br>[07:55] experimentmental blocks and start<br>[07:57] messing around with that stuff and that<br>[07:59] might cause problems as you move forward<br>[08:02] because like there's warnings right here<br>[08:03] like these blogs, you know. So it's it<br>[08:07] if you want to use it, you can but you<br>[08:09] have to be you have to be aware of what<br>[08:11] you're trying to opt into. All right.<br>[08:13] And testing is the way to do it, right?<br>[08:14] So, make sure that that you test stuff.<br>[08:17] Now, the thing about the Gutenber plugin<br>[08:19] is that all of these versions get rolled<br>[08:21] up into the next major version of of<br>[08:23] WordPress. So, the versions that we're<br>[08:24] dealing with right now, like uh I can't<br>[08:26] remember what what the cuto off was for<br>[08:28] for 6.9, but these features that we're<br>[08:30] talking about today, the PHP only<br>[08:31] blocks, they're going to be rolled in in<br>[08:33] the 7.0, barring some crazy all of a<br>[08:36] sudden, oh, we can't do this, we have to<br>[08:38] roll it back, right? So, don't worry too<br>[08:41] much about it. This is definitely<br>[08:42] something that you'll want to test and<br>[08:44] then and and and you know work with<br>[08:46] before you say deploy to your client<br>[08:48] site. But when I was at Tenup, we almost<br>[08:51] always installed and enabled the the<br>[08:55] plugin because you you you know as the<br>[08:58] development moves forward, you get<br>[09:00] access to a lot more features a lot<br>[09:02] faster.<br>[09:04] Um Madtown Limbs asked a question. Um<br>[09:08] what's this question here? I think and<br>[09:10] by the way thank you for the first time<br>[09:12] chat mad times I think I missed or don't<br>[09:14] understand why the gut plugin is needed.<br>[09:15] So the gut plugin is needed because<br>[09:17] these features the code does not exist<br>[09:19] in core right now. Um this was a a new a<br>[09:24] new addition added in version 21.8 8 of<br>[09:26] the Gutenberg plugin, which does not um<br>[09:31] uh does not include the code that we're<br>[09:34] looking at today, but this should be the<br>[09:36] next major version of uh of WordPress.<br>[09:39] Anyways,<br>[09:41] um yes, I did work at Tenup. It was a<br>[09:42] fantastic experience. I loved all of my<br>[09:45] time at Tennup. It was amazing. Shout<br>[09:48] out Jake Goldman.<br>[09:51] Uh<br>[09:53] yeah. Anyhow,<br>[09:57] um yeah, so that's that's what we're<br>[10:00] working on today. So, so yeah. So,<br>[10:04] again, I can't stress enough that it's<br>[10:06] safe to use, you know, with great power<br>[10:08] comes great responsibility to quote<br>[10:11] Uncle Ben. Um, but you know, you you<br>[10:15] should be fine as long as you're you're<br>[10:16] not doing the the crazy stuff and<br>[10:18] relying on all the cutting edge things<br>[10:20] for your features. Uh, but it's a great<br>[10:23] way to go in and experiment. Uh, cool.<br>[10:25] So,<br>[10:27] what where was I? Okay. So, now we've<br>[10:29] got we've got all of the all of these<br>[10:32] things and we can we we can do this. So,<br>[10:35] this mirrors<br>[10:37] the a lot of what you you're going to<br>[10:39] see in like a block JSON file, right?<br>[10:42] So, we have name, version, all all this<br>[10:45] stuff, you know, icon, category,<br>[10:48] description. I don't know if we need<br>[10:51] stuff like this. Like I don't think<br>[10:52] that's really going going to do much. I<br>[10:54] don't know what ex let's let's see.<br>[10:57] Oh, interesting. I wonder if it supports<br>[10:59] example.<br>[11:03] Um<br>[11:07] when it shows up in the widget. Okay,<br>[11:09] hold on. I need I need to refresh this<br>[11:11] here. Um<br>[11:16] go to widgets. It's around here<br>[11:17] somewhere. My custom thing. So no<br>[11:20] preview available. So if I were to add<br>[11:24] example<br>[11:26] example in here and just leave it as an<br>[11:30] empty array.<br>[11:33] What does that do?<br>[11:38] Uh sonwp on on YouTube is asking this is<br>[11:41] not merged to core yet right. Do you<br>[11:43] know when it will be merged? Well, as I<br>[11:45] said earlier, um the the versions Okay,<br>[11:50] cool. So, that does support title. So,<br>[11:53] the versions of Gutenberg,<br>[11:56] um there there's a whole slew of<br>[11:58] versions of Gutenberg. Um like so if you<br>[12:01] it'll be most likely in version uh seven<br>[12:14] into oh my god<br>[12:18] it will most likely be going this in<br>[12:21] here. So let's just see<br>[12:26] uh WordPress 7 was just started to<br>[12:27] release. Oh, okay. Here's the road map.<br>[12:31] Um, oh, wait. Here's a really great link<br>[12:33] here.<br>[12:36] Let's see.<br>[12:38] So, 21<br>[12:41] Oh, 21.8<br>[12:46] 6.9. So, everything after 21.8 will go<br>[12:49] into um<br>[12:51] 7.0.<br>[12:54] So I I I did test this without the<br>[12:55] Gutenberg plugin and it didn't work at<br>[12:58] all. So maybe some So I I know that<br>[13:00] there was a version of Gutenberg that<br>[13:02] one of these one of the pull requests<br>[13:04] that started this process was included<br>[13:07] in, but it I would imagine it probably<br>[13:09] didn't didn't expose enough things. So<br>[13:11] So yeah, so probably sometime in April,<br>[13:14] March or April when 7.0 comes out. All<br>[13:17] right. Where where was I here? What am I<br>[13:19] doing here? So plugins this thing. Okay.<br>[13:21] So this is really cool because now we've<br>[13:23] got a our hello same sweet. So this is<br>[13:29] this is done with serverside render um<br>[13:32] that's how that's how this is actually<br>[13:34] getting um um rendered<br>[13:39] and uh so there is there are some docs<br>[13:42] actually if I can find it where did I<br>[13:44] put the registration of a block. So here<br>[13:46] is here are some docs that you can read.<br>[13:48] It's pretty, you know, it's pretty<br>[13:50] straightforward. So, I um but you can<br>[13:52] actually add some supports in here,<br>[13:55] which is kind of neat. And I have been<br>[13:58] looking at like there's an there's an<br>[14:00] unstable thing. Um<br>[14:03] so, I'm just going to add this. Now, I<br>[14:06] did a little bit of digging, but I<br>[14:08] didn't do much um homework on this<br>[14:10] because I wanted it to be as much of a<br>[14:13] surprise to me as it is to everyone<br>[14:16] else. Does it drive everyone else crazy<br>[14:18] that you have to do these alignment<br>[14:20] things? Drives me nuts. Absolutely nuts.<br>[14:25] I don't know why I said it like that.<br>[14:27] All right. So, let's see what happens<br>[14:29] now that we've added. So, what I did was<br>[14:31] I I I added a color a color control<br>[14:34] there. Uh so, grab this.<br>[14:38] Now, we've got text yellow background<br>[14:42] blue. Beautiful. Um, so my guess is that<br>[14:46] we can add any control that you can opt<br>[14:48] into with a block. So anything so let's<br>[14:51] try um let's try padding maybe.<br>[14:55] Now I have to remember how how to do<br>[14:57] this. So let's get block.json open um<br>[15:03] supports<br>[15:07] do the block supports. All right. Okay.<br>[15:09] Here we go. So, let's look at um<br>[15:13] where are we? Uh<br>[15:16] spacing. So, let's put spacing in<br>[15:21] support spacing. We'll see what that<br>[15:23] does. So, okay. So, it should be an<br>[15:24] array. Okay. So, we'll go not that<br>[15:27] spacing.<br>[15:30] And then maybe chat GBT will help me out<br>[15:32] here. And what was the other one? Uh<br>[15:33] block gap. Let's just put that in to see<br>[15:36] what that does.<br>[15:38] M. it up. Okay.<br>[15:44] And that's yelling at me again. Right.<br>[15:47] There we go. Okay. So now, now I'm not<br>[15:50] going to do this for every single one.<br>[15:53] Excuse me. Sorry. Big old cough. Okay.<br>[15:55] So, let's see. We got some block gap.<br>[15:59] Going to grab this. Oh, there we go. So,<br>[16:01] we got padding top and bottom. We've got<br>[16:04] margin. We've got block spacing, which<br>[16:06] doesn't really do too too much here. So,<br>[16:09] I think it I think it follows that we<br>[16:11] can probably add anything anything<br>[16:12] that's in block supports right now, we<br>[16:14] can probably add to this, which is<br>[16:15] really cool. Um, that's pretty amazing.<br>[16:21] Um, no, wait, wait, hold on.<br>[16:25] Uh,<br>[16:26] cross keys, why would you assume cross<br>[16:30] WSG? What's WS? What What are we doing<br>[16:32] here? Yo, stove 423. What's going on?<br>[16:37] What's<br>[16:40] WSG? I don't know what WSG means. What's<br>[16:43] whatever. Uh, so Crossk is asking, can I<br>[16:46] assume this totally ignores theme JSON<br>[16:48] settings? How do you what do you mean?<br>[16:50] Can Can you Can you elaborate on that<br>[16:54] what you're talking about there?<br>[16:56] Um, because I don't why why I don't<br>[16:59] think it would. It's It's using<br>[17:01] theme.json. JSON<br>[17:03] to get the colors. Like if you were to<br>[17:06] say for example go to a different theme,<br>[17:10] I don't know what have let's let's<br>[17:11] activate this theme, right? We'll save<br>[17:14] this. I would imagine that the theme<br>[17:16] JSON<br>[17:18] um<br>[17:24] Oh, I see what you're saying. No, you<br>[17:26] should still be able to<br>[17:29] like So you Okay, so you're you're using<br>[17:31] theme JSON to opt into the controls for<br>[17:33] blocks. Is that what you're saying? Is<br>[17:36] that Yeah. So it's<br>[17:38] Oh, interesting.<br>[17:40] So yeah, like it's the the the colors<br>[17:43] aren't aren't there because I changed<br>[17:44] themes. Um<br>[17:47] let's update that, I guess. Um so I I I<br>[17:51] don't think this is going to override<br>[17:53] anything. So, so what this is, this is<br>[17:55] no different than opt out. Yeah. So, you<br>[17:57] should still be able to opt out. In<br>[18:00] fact, let's<br>[18:02] That's a good question. Carolina, do you<br>[18:04] know off hand if opting out at the theme<br>[18:08] level overrides opting in at the<br>[18:12] at the uh block level?<br>[18:17] Yeah. So, like at the end of the day,<br>[18:18] this is just the block. Exactly what<br>[18:20] what Karolina said. and your controls<br>[18:23] are going to be it's it's you're just<br>[18:27] not defining them in in JSON, you're<br>[18:28] defining defining them in PHP, which<br>[18:30] under the hood is really what's<br>[18:31] happening, I think, anyways, a lot of<br>[18:32] times, but um so so I lost my mouse.<br>[18:38] Where's my mouse? There it is. So, yeah,<br>[18:40] it shouldn't matter. Shouldn't matter.<br>[18:43] But I'm I'm now wondering if you go to<br>[18:47] um<br>[18:48] if you go to theme JSON and override<br>[18:51] this block and tell it that to not have<br>[18:53] block spacing if that will happen.<br>[18:57] But that's kind of outside of what we're<br>[18:59] talking about today. But that yeah,<br>[19:04] you know what I'm saying? So if you if<br>[19:08] you are enabling and disabling things at<br>[19:10] at the theme level, I think that'll<br>[19:12] still work. should still work, right?<br>[19:16] Um, but let's let's let's take a look.<br>[19:19] 2025<br>[19:20] team JSON.<br>[19:22] Um,<br>[19:25] so okay, I'm going to add the name of my<br>[19:29] code, which is this thing,<br>[19:33] right? What's the benefit? What's the<br>[19:35] benefit of PHP?<br>[19:42] welcome threr.<br>[19:45] Uh what am I doing here? I need<br>[19:49] controls. Where? See, this is it. This<br>[19:51] is the thing. Color.<br>[19:55] I don't even know where where to do<br>[19:56] this.<br>[20:02] That's the thing. See, I don't even<br>[20:03] know. Oh, settings. It's probably under<br>[20:04] settings somewhere.<br>[20:07] Get rid of that spacing typography.<br>[20:11] Can you do blocks under here? Blocks.<br>[20:15] And then we'll add my block, right?<br>[20:19] And then<br>[20:22] we'll say<br>[20:24] uh spacing and we'll go what did I say?<br>[20:27] Block app. And I said it's a false,<br>[20:29] right? And I don't know if that's<br>[20:31] accurate or not.<br>[20:40] Let's let's let's see. So if if that's<br>[20:45] not the right place, somebody let me<br>[20:46] know because I don't do this very often.<br>[20:47] I just want to make sure. So I'm going<br>[20:49] to save this and uh turn I will get to<br>[20:51] your question momentarily, my friend.<br>[20:56] Let's see that. Oh yeah. Okay. So I just<br>[20:59] disabled block app support at the theme<br>[21:02] level.<br>[21:03] Oh, it's Aki Hammano. Everyone say hi to<br>[21:06] Aki. Hey, Aki. And Terrence is here.<br>[21:10] Awesome. Wait, is Aki not a VIP? That's<br>[21:14] unacceptable.<br>[21:16] We're going to pause the stream.<br>[21:22] >> Yeah. Yeah. Of course, that guy's a VIP.<br>[21:25] Whatever.<br>[21:27] All right. Hold on. Hold on. Hold on. I<br>[21:29] got to add you to the auto shout out.<br>[21:31] It's not often that Aki gets to to to<br>[21:34] show up here. So when he does<br>[21:37] uh<br>[21:39] what<br>[21:41] why is he what's he what's<br>[21:45] Oh, I have to add viewer. That's the<br>[21:47] thing I'm doing.<br>[21:49] You can't see what I'm doing here, but<br>[21:51] I'm doing it.<br>[21:56] There he is. All right. Now, the next<br>[21:58] time Aki says something,<br>[22:01] what the heck was that? That's That's<br>[22:02] how I I That's my auto shout out for for<br>[22:05] the for the real ones that like to show<br>[22:08] up here.<br>[22:10] Um,<br>[22:12] cool. So, so anyways, um, cross keys, I<br>[22:16] think it was I just disabled block app<br>[22:18] support for this block at the theme<br>[22:22] level. So, so now if I were to, so if I<br>[22:26] go back over to 2024, I'm just going to<br>[22:27] update this style because that's how I<br>[22:29] do things. I should it should come back.<br>[22:32] So, if I refresh this now,<br>[22:35] I click this. You see, we have we have<br>[22:37] block spacing now. But because at the<br>[22:39] theme level under settings, wherever I<br>[22:41] put that in here, I turned it off, it<br>[22:44] still works, right? What's PHP blocks P<br>[22:48] terance?<br>[22:49] Yeah. So it this doesn't override your<br>[22:53] theme JSON. You can still control not<br>[22:56] live preview. Why did I click that?<br>[23:01] Come on. Get<br>[23:04] go back.<br>[23:07] Oh my god. Oh my god. Oh my god. Okay,<br>[23:09] enough<br>[23:11] themes. I'm just going to pick the theme<br>[23:13] I want. 2025 activate. Um, yeah. So,<br>[23:18] yeah. So, there we go. What was the<br>[23:19] other thing? What? Oh, uh, so slow. I<br>[23:23] know. I know. I It was It's running slow<br>[23:26] for me. I I'm using um I'm using Studio<br>[23:29] and I quite like it. It's pretty handy.<br>[23:31] I can do a lot with it, but every once<br>[23:32] in a while it just kind of gets a It<br>[23:34] just slows down for a second for some<br>[23:36] reason. I don't know. I don't know. I<br>[23:38] didn't I don't know. Um the question was<br>[23:43] why what's the benefit of PHP only<br>[23:46] blocks? Uh the benefit of PHP only<br>[23:48] blocks is that people don't if you don't<br>[23:51] like to use JavaScript or you don't want<br>[23:52] a build process.<br>[23:55] Uh there is no 2026 Terrence. Uh<br>[24:00] um yeah. Yeah. I I know they're working<br>[24:02] on performance stuff. So under the hood<br>[24:04] is running playground, right? And and<br>[24:05] there's a lot there's a lot going on in<br>[24:07] there and every once in a while it needs<br>[24:08] a a kick in the pants to get going<br>[24:10] again. But thunder era to answer your<br>[24:12] question, not everyone likes build<br>[24:14] processes. Not everyone likes React. Not<br>[24:16] everyone likes to work with JavaScript.<br>[24:17] Sometimes you don't even need it. Um<br>[24:20] like if this block if if this block was<br>[24:22] just like give me the latest posts,<br>[24:25] right? Um you don't need an entire admin<br>[24:29] for that. I mean if you want to control<br>[24:31] the amount. Sure. What is this? I see<br>[24:33] the Okay. Uh AI seems like seems to like<br>[24:36] build processes. AI. Yeah, for sure.<br>[24:38] Because everything's a build process.<br>[24:40] Like JavaScript's won. JavaScript has<br>[24:42] won the web wars. It is. Oh,<br>[24:50] feel like I have to change that voice<br>[24:51] because if it happens too many times in<br>[24:52] the stream, it starts to annoy me. So, I<br>[24:54] can only imagine what y'all folks are<br>[24:56] thinking here. Bad dude cord has got a<br>[24:57] big wall of text here. Let's Let's see<br>[25:00] what it is here. Uh, spotlight message.<br>[25:05] I see the benefit of devs that don't<br>[25:06] want to learn JS Reactor even more<br>[25:08] potential. But also I also thought the<br>[25:10] server side render kind of discouraged<br>[25:12] in the past. Maybe it's changing with<br>[25:13] the interactivity API. Uh that's a good<br>[25:16] point. It is not. This is not<br>[25:20] um<br>[25:27] the the thing is<br>[25:29] serverside render is not always the best<br>[25:33] solution in the block admin like in in<br>[25:36] here. Um, but that's what it's that's<br>[25:39] what's being used to render what you're<br>[25:41] seeing right here cuz it's a it's a it's<br>[25:44] a serverside only component or uh block,<br>[25:48] right?<br>[25:49] Um, and so the thing about it is that uh<br>[25:52] it's it's using the new there's a hook a<br>[25:55] use server you use the server side rent<br>[25:57] render hook that's that's being used,<br>[26:01] right? Um, which I can show you. Where<br>[26:04] is it? Oh, no. It's a bit in the weeds<br>[26:07] right here. Let me uh zoom this in. So,<br>[26:10] this is actually when this is being<br>[26:12] registered, it's being registered inside<br>[26:14] the register core blocks uh function.<br>[26:16] So, we're in Gutenberg right now. Um I'm<br>[26:19] just going to jump this to trunk just<br>[26:21] and hopefully nothing changed or maybe<br>[26:24] I'll just go back not screw around with<br>[26:26] it. Uh but basically what's happening<br>[26:28] here is they're using a a uh use<br>[26:30] serverside render thing and it's getting<br>[26:33] the content back and that's being passed<br>[26:34] into an HTML renderer, right? But yeah,<br>[26:36] there is a docs link for it. Uh<br>[26:40] thank you Karolina. Um yeah, so<br>[26:46] yeah, there's there's lots of reasons<br>[26:48] why I think PHP blocks can be can be<br>[26:51] useful. Um the boiler plate is a lot<br>[26:54] lower. like I I registered that entire<br>[26:56] block that you're looking at with just<br>[26:57] this. That's it. Nothing else. There's<br>[26:59] nothing else being added and cued. Um<br>[27:03] nothing now I and I don't think there's<br>[27:07] uh now the only thing is this I I wonder<br>[27:10] actually will this show up in let's<br>[27:12] check a couple of things. So if I if<br>[27:15] couple things that I wanted to look at<br>[27:18] is um if I want that's the wrong way.<br>[27:21] Clear.<br>[27:23] If I wanted to do WP.DATA<br>[27:27] select<br>[27:30] um maybe block editor.<br>[27:36] Oh, I'm at the wrong level. Sorry. Run<br>[27:38] that again. What I can never remember is<br>[27:41] get<br>[27:44] um<br>[27:46] No, I'm going to I need to do this. I<br>[27:48] think it's<br>[27:50] uh blocks. I think it's that I think I<br>[27:52] need to get the registered. I want to<br>[27:54] get get<br>[27:56] block types.<br>[27:59] Yeah. So, get block types is what I'm<br>[28:01] wanting to call. Uh, get block<br>[28:06] types.<br>[28:08] This is showing meund<br>[28:11] a lot of blocks.<br>[28:14] >> I'm just trying to Oh, thanks for the<br>[28:17] sub, cross keys. You're the best. the<br>[28:19] best.<br>[28:21] I don't care what anyone says, you're<br>[28:24] the best. Um, okay. So, it is actually<br>[28:26] showing up in here. So, it it does get<br>[28:28] registered like the way that you would<br>[28:29] normally register it. So, you do have<br>[28:30] access to it uh programmatically in the<br>[28:32] data stores and everything, which is<br>[28:34] great. I wasn't sure how that would uh<br>[28:37] pan out, but um yeah, so that is cool.<br>[28:42] Um<br>[28:46] you're being annoying feet. What? Yeah,<br>[28:48] it's going to fill a lot of annoying<br>[28:49] gaps.<br>[28:56] Sorry, I'm reading chat here. Um,<br>[28:58] there's a lot. Yeah, this is great. Uh,<br>[29:00] PHP is only going to be good for utility<br>[29:02] is going to be good is only going to be<br>[29:04] good for utility blocks. For example, I<br>[29:06] have a newsletter CTA card that content<br>[29:08] creators have no control over except<br>[29:09] where they insert it in the content.<br>[29:11] Interesting. So, it needs to exist as a<br>[29:13] block for Gutenberg, but they all need<br>[29:14] all they need to do is place it. no<br>[29:16] other input for them to get.<br>[29:18] That's true. I mean, you can do the same<br>[29:20] thing in JavaScript blocks. Um, if you<br>[29:23] wanted<br>[29:28] Yeah. I mean, yeah. Uh, Terren's point<br>[29:32] about uh a like a block version of a<br>[29:35] short code. Definitely.<br>[29:38] Do we still get access to sidebar<br>[29:40] inputs? That's the next thing that I'm<br>[29:41] trying to figure out. Um, this now I'm I<br>[29:45] I haven't tested any of this. I'm going<br>[29:47] to try to put an attribute in and I'm<br>[29:49] going to try to get it to do something<br>[29:51] in the right hand side. So, let's see<br>[29:53] what happens. I have no idea what is<br>[29:56] going on. But yeah, uh,<br>[30:02] you're not asking any distra distracting<br>[30:04] questions. That's the whole point of<br>[30:05] this. Glad you're here. But, uh, sidebar<br>[30:08] inputs.<br>[30:10] What's this?<br>[30:14] Yes. So, this is the experimental thing<br>[30:17] that I I'm uh I'm I'm trying to figure<br>[30:20] out here.<br>[30:22] So, this is a good example here. So,<br>[30:25] what is this?<br>[30:30] Okay. So, this<br>[30:33] Okay, maybe you don't need to do<br>[30:35] anything other than just add it. Okay.<br>[30:37] So, I'm just going to add this. I'm<br>[30:39] going to add an attribute in here<br>[30:40] somewhere. Oh, wait. I'm going to get<br>[30:42] the whole<br>[30:44] the whole array.<br>[30:48] Um,<br>[30:55] uh, do that. Okay. So, I'm wondering if<br>[30:58] this is just going to ma make it work.<br>[31:01] Let's look.<br>[31:03] Um, I lost my There we go. All right.<br>[31:06] So, I added a string in here.<br>[31:18] Okay.<br>[31:20] So,<br>[31:28] is is that the same?<br>[31:32] It is. Pony blocks have no way to edit<br>[31:34] their attributes in editor. This PR Oh.<br>[31:40] That's not okay. So, that's in, but it's<br>[31:43] not. It's not.<br>[31:50] Yeah, it'll be the next Gutenberg<br>[31:51] release. Hey, Brian. How's it going? Um,<br>[31:55] now I did see something. I did see<br>[31:58] something.<br>[31:59] Yeah. Well, which is fine because um the<br>[32:02] the two weeks thing is not really crazy<br>[32:05] because uh No, I'm not working with<br>[32:08] Trunk. I'm I'm on 22.3.<br>[32:10] I'm wondering though if um<br>[32:21] so I was doing some digging today and<br>[32:25] experimental auto control.<br>[32:32] >> Yeah. Is 22. It's supposed to be next<br>[32:35] week, I think. I think I think what are<br>[32:38] we on right now? Is the release<br>[32:39] candidate out? So it be 22.4 RC. This<br>[32:42] was released yesterday, I think. And<br>[32:45] then next week we'll be<br>[32:47] it it it'll be out. So I I clearly<br>[32:49] should should have waited. Um<br>[32:53] Okay. I'm What I do? I'm going to add<br>[33:03] Okay.<br>[33:08] I I wonder if I add this. I I don't know<br>[33:10] if if this will work. Title. And if I go<br>[33:17] I get that. I don't think this is going<br>[33:19] to do anything.<br>[33:21] Uh I don't think this is going to do<br>[33:24] anything, but I want to check anyways<br>[33:25] cuz I'm wondering if this is under the<br>[33:26] hood because this is not on trunk. Um so<br>[33:29] I'm just going to see. We're just going<br>[33:31] to see. Just going to see. You know, my<br>[33:34] guess is that it won't it won't do much<br>[33:36] right now. Um, but what's really cool<br>[33:39] about this is we're going to have the<br>[33:41] ability to do this<br>[33:43] next week, which is really cool.<br>[33:49] No. Okay. So, nothing unless I'm<br>[33:53] All right. So, that did not work, which<br>[33:55] is which is totally expected, which is<br>[33:58] too bad, but that's okay. Um, wait. Did<br>[34:01] I Did I actually do that right? Let's<br>[34:03] see.<br>[34:08] Name.<br>[34:12] Yeah. Okay. So, that would be the in<br>[34:14] that part of the array. So, I mean, I<br>[34:16] could check out Gutenberg and we could<br>[34:18] we could take a look at that. I didn't<br>[34:19] do that right now. Um<br>[34:24] Um, it'll probably take forever, but<br>[34:28] let's see. Okay. You know what? I'm<br>[34:30] going to do that. I'm going to just do<br>[34:32] that while we talk here. Um,<br>[34:38] what's hilarious is I have to go and<br>[34:40] actually grab this. Say boop boop. Let's<br>[34:44] go open an integrated terminal.<br>[34:48] I'll go get clone<br>[34:53] uh guten.<br>[34:57] All right. Oh,<br>[35:05] all right. We'll let that run. That was<br>[35:07] going to take forever. Um, yeah. So,<br>[35:10] this is like it's very much emerging<br>[35:12] thing. So this this axi cross case this<br>[35:14] is a really good example of like um like<br>[35:16] we're on the bleeding edge here right<br>[35:18] now of PHP block registration and um<br>[35:22] it's not quite ready but I mean the next<br>[35:25] version will have this next piece of the<br>[35:27] puzzle and then there's I'm sure there's<br>[35:29] more like Hector is doing a lot of<br>[35:31] really really awesome work here on all<br>[35:32] of this stuff.<br>[35:35] Um<br>[35:37] what is this on the client in block<br>[35:40] editor package converts mark time to<br>[35:41] data form attributes it's necessary to<br>[35:44] okay obsolete once this lands okay<br>[35:49] exclusions attributes are excluded from<br>[35:50] auto if they have a source have a role<br>[35:53] or added by block supports testing<br>[35:56] instructions<br>[35:57] this is very cool so let's let's let's<br>[36:01] take a look at what this is so he's got<br>[36:03] this okay so it's going to Look.<br>[36:07] Wow. So you can define it. Enum.<br>[36:12] Oh, the type gives you. How does it<br>[36:14] know?<br>[36:19] String with enum is a select field. Oh,<br>[36:21] very cool. So you Oh, you pass it string<br>[36:24] with So you pass it an enum and this<br>[36:27] this would be the select options for for<br>[36:29] your dropdown. That's very cool.<br>[36:33] I was this is an idea that I had like<br>[36:36] two years ago about like doing this with<br>[36:38] block JSON having autoregister controls<br>[36:42] like this should be in block JSON as<br>[36:44] well which it may it may well be as part<br>[36:46] of this but um that would be super cool<br>[36:50] because then you could just say<br>[36:52] like what would be great in here is it<br>[36:55] like a lot of this stuff is very<br>[36:57] straightforward but if you had something<br>[36:58] more complicated like say you had a date<br>[37:00] and you wanted to it stores as a string<br>[37:02] But you wanted it to be a date picker<br>[37:03] component. That'd be really nice to be<br>[37:05] able to tell it.<br>[37:08] Mhm.<br>[37:10] Very much. Very cool.<br>[37:13] All right, let's see how our Okay, so CD<br>[37:16] Gutenberg<br>[37:18] um-dev<br>[37:20] npm<br>[37:22] npm install and npm.<br>[37:27] I can't see. My mic's in the way. Run<br>[37:29] build. See what happens.<br>[37:32] Boom. Let that run for 45 minutes. Oh,<br>[37:36] you know what? I forgot to do this. I'm<br>[37:38] going to um every stream we're doing<br>[37:39] viewer callins. So, I'm going to start<br>[37:41] my viewer call-ins right now. So, if you<br>[37:42] want<br>[37:44] um<br>[37:48] I'm going to take a risk here. if you<br>[37:50] want and you have a mic and a camera and<br>[37:52] you want to come on the stream,<br>[37:55] um<br>[37:56] you can you can<br>[37:59] say hi and I'll I'll bring you in. Oh<br>[38:02] boy,<br>[38:05] that was<br>[38:08] I don't even know. I don't I I'm sorry.<br>[38:13] I should know better than to click<br>[38:14] internet links.<br>[38:16] Oh, well, you know, I've been streaming<br>[38:18] now for Well, is am I actually live now?<br>[38:21] Am I banned on Twitch yet? I'm even I'm<br>[38:24] so scared to even open up things now.<br>[38:27] Um,<br>[38:30] that was<br>[38:34] that was really bad. So,<br>[38:37] I don't know if I'm going to get banned<br>[38:39] or what happened, but uh anyhow.<br>[38:44] Yeah, I know. I'm just never going to<br>[38:46] click links again. That was so dumb.<br>[38:49] Okay, I looks like I'm I'm streaming. I<br>[38:52] apologize, my friends. I'm not normally<br>[38:54] that stupid, but uh apparently I am<br>[38:56] today. So, um<br>[39:00] yeah.<br>[39:02] So, if anyone was horribly offended by<br>[39:04] that, then I apologize, but uh that was<br>[39:07] not my intention.<br>[39:10] Jeez. Okay. Um, so anyhow,<br>[39:16] uh, that is ridiculous. I will never<br>[39:21] click another link again. Um, oh, right.<br>[39:24] Did I do I have<br>[39:27] Hold on. I got to get back over to my<br>[39:29] Twitch channel. I had to quit<br>[39:31] everything.<br>[39:34] Do I mind testing out there? He's back.<br>[39:36] Let's get the This guy's back. He's<br>[39:38] back.<br>[39:45] Hey, it's a link. I should click that.<br>[39:47] I'm going to go ahead and Where's Is<br>[39:49] there a ban? Is there a ban for for this<br>[39:52] person?<br>[39:53] Yeah, we're going to ban you.<br>[39:56] Yeah, banan.<br>[40:01] Yeah. Well, I didn't have a chance. I<br>[40:04] had to quit. I quit and I was gone. Uh<br>[40:07] cuz I I I couldn't quit everything fast<br>[40:10] enough. Uh yeah, the VOD is going to be<br>[40:13] gone. But uh I uh that's ridiculous. I<br>[40:16] will upload this. I'm going to take both<br>[40:17] pieces. I'll cut out the the the fun<br>[40:20] section and I will edit them together<br>[40:22] and we'll I'll do a version on um I'll<br>[40:25] I'll I'll re-upload this properly. So<br>[40:27] anyhow,<br>[40:30] oh, you know what? I've been doing this<br>[40:31] for long enough that I should I should<br>[40:33] know, right? Like I shouldn't be so<br>[40:35] stupid. Uh but anyways, I want to get<br>[40:38] stream together going again. So if you<br>[40:40] guys do want to come in chat, even if<br>[40:42] you're, you know, I'm gonna make a<br>[40:43] little bit of changes though. Um so<br>[40:47] yeah, so if you want to come and chat,<br>[40:48] come hang out. Um why is this this<br>[40:53] person should be banned? Like what is<br>[40:55] this<br>[40:58] uh banned? Oh yeah, for sure.<br>[41:04] Okay. Anyways,<br>[41:12] well, you know what? If people if<br>[41:20] um<br>[41:21] Hey, I got a new game. Can you try it<br>[41:23] for me?<br>[41:26] Well, Cross Keys, thanks for clipping<br>[41:28] that. What was the look on my face? As<br>[41:30] soon as I I clicked it, I was like,<br>[41:32] "This is this is a horrible idea." Um,<br>[41:37] yeah, I'm not clicking anything ever<br>[41:39] again.<br>[41:43] All right, anyways, back to what we're<br>[41:45] doing here. So, this is installing. And<br>[41:48] jeez, I feel I feel quite bad, actually.<br>[41:53] Um cuz I know uh uh Terrence is he's not<br>[41:57] even on on the uh<br>[42:01] So that's still loading. That's still<br>[42:04] loading. Okay, cool. Let's see. Um I'm<br>[42:08] going to build this out and then we'll<br>[42:09] see if we can get that uh that other<br>[42:11] thing going. Uh<br>[42:14] crazy.<br>[42:20] Wow.<br>[42:32] Oh, I just<br>[42:37] you know when you're just like you you<br>[42:39] like<br>[42:40] the the the bot got me. The bot got me.<br>[42:43] It's funny. I I I got it. I got I fell<br>[42:46] for it like an idiot. But I'm also<br>[42:49] mortified cuz I cuz you know my my my<br>[42:53] viewers<br>[42:55] my my friends are all getting like uh<br>[42:59] okay come on now let's build any um yeah<br>[43:04] if and and I know this is going to show<br>[43:06] up in certain discards<br>[43:08] somewhere. Oh boy.<br>[43:14] Ridiculous. All right. So viewer callins<br>[43:17] are active. They should be active. If<br>[43:18] you're interested in jumping on and<br>[43:19] chatting about uh you know coding stuff<br>[43:22] or you know Flappy Bird, we we we can do<br>[43:24] that. Happy to have you on. Um<br>[43:29] yeah, you know, so<br>[43:46] Okay, it's getting there. It's loading.<br>[43:48] It's loading. It's loading. It's<br>[43:49] loading.<br>[44:07] Okay, so we got it built. So, let's I'm<br>[44:09] going to um<br>[44:12] It was not on my bingo card today<br>[44:14] either. Um Oh, you know what's<br>[44:17] ridiculous? I had to like So, here's the<br>[44:19] thing. Should I just open up all my<br>[44:20] tabs? Should I just reopen all my closed<br>[44:23] tabs?<br>[44:27] How funny would that be? Uh, I don't<br>[44:31] think I want to do any of that. Uh, I'm<br>[44:33] going to have to go and scrub. Oh my<br>[44:35] god. Oh my god. Is the bunch of crap<br>[44:38] downloaded, too?<br>[44:42] I'm going to have to burn my computer.<br>[44:46] I'm going to have to burn my computer.<br>[44:58] Yeah, I'm going to just Hold on. Where's<br>[45:00] my history? I'm going to do this later<br>[45:01] because I don't want anything popping up<br>[45:03] here. I'm going to clear. You need I I<br>[45:05] need I need an old priest and a young<br>[45:06] priest. That's what I need. Uh<br>[45:10] oh, that's not it. It is it post. Sorry.<br>[45:13] Sorry. I'm all flustered now. I'm all<br>[45:15] flustered. It's ridiculous. Okay. I<br>[45:18] cannot believe I did that. Anyways,<br>[45:19] okay. So, plugins. Let's look at the<br>[45:22] install plugins. So, I should have two<br>[45:23] Gutenbergs. So, this one is going to be<br>[45:28] uh deactivate that one. I think I<br>[45:31] activate this one.<br>[45:37] H<br>[45:48] Ah, there we go. Okay. A safe for work<br>[45:51] screenshot reaction screenshot in the<br>[45:53] WordPress chat discord. Of course, you<br>[45:54] put that in the WordPress chat discord.<br>[45:58] Who Who do you think's going to have an<br>[46:00] heyday with that?<br>[46:03] I'm going to go look right now.<br>[46:10] Let's see. Uh, WordPress chat. Oh, there<br>[46:13] it is. Yeah. Yeah, that was that was not<br>[46:18] good.<br>[46:19] That's a good one. Thank you for sharing<br>[46:21] that. That's actually fairly funny. Oh,<br>[46:23] okay. All right. I'm going to quit<br>[46:24] Discord. Someone else violates my<br>[46:28] my my<br>[46:30] chat. Okay. Anyway, so this this is<br>[46:33] looking like So, I have Gutenberg like<br>[46:35] the the plugin<br>[46:38] enabled. Um,<br>[46:41] and sorry, get like uh Gutenberg like<br>[46:44] from trunk enabled. And um<br>[46:49] I'm just I'm so flustered right now.<br>[46:52] It's ridiculous.<br>[46:58] Yeah. I don't I don't know what I did. I<br>[47:00] I I don't know how I got so lucky. I've<br>[47:01] been doing this stuff for 4 years. Three<br>[47:04] years. Four years. and never never had<br>[47:07] anything like that. So, it's either a<br>[47:10] sign of I'm getting better, getting more<br>[47:14] popular.<br>[47:16] I don't know. Ridiculous, though.<br>[47:18] Anyway, okay.<br>[47:21] So, uh there was a link up here. I'm not<br>[47:23] going to click a Flappy Bird link. Uh<br>[47:34] which one is this?<br>[47:38] Oh, no. Not Not that one. Thanks for<br>[47:40] sharing that, though. Hockey. Sidebar<br>[47:42] inputs. This is the one I want.<br>[47:46] Crazy. All right. I'm just going to drop<br>[47:48] all of these in here and we can play<br>[47:50] around with this and see what it it see<br>[47:52] how it works. I mean, it's really It's<br>[47:54] clearly just like being tested. So, if I<br>[47:56] just did I did I grabbed the I didn't. I<br>[47:58] grabbed grab that.<br>[48:02] Um do that. Let's see what we got.<br>[48:05] So here<br>[48:15] yes, it's exactly what's going to<br>[48:17] happen. Oh, okay. Very cool. So checkbox<br>[48:22] count. All right. So for like simple<br>[48:24] things, this is pretty powerful. And<br>[48:26] even I mean you can even<br>[48:28] this is pretty powerful. So like and<br>[48:30] what like and one of the cool things<br>[48:32] about this is like you could do you<br>[48:34] could get like um<br>[48:37] a series of posts throw some ideas IDs<br>[48:40] in there. Yeah. Check out the new user<br>[48:42] submitted block cord. Not goatsy.<br>[48:44] Honestly, thank you. Thank you for that<br>[48:46] funny story. Well, not funny. Not not<br>[48:48] not funny. Haha. Funny. Like we had this<br>[48:51] uh my kids school had this thing um I<br>[48:55] can't remember what it's called. It was<br>[48:56] like a It was like a It was an an app<br>[48:57] for teachers to talk to parents like in<br>[49:00] a classroom. It was it was it was pretty<br>[49:02] secure. Well, we thought it was secure.<br>[49:04] And so, um it was great because the<br>[49:06] teachers could just post a message to<br>[49:08] their class and just the parents of this<br>[49:10] of the kids would see it. And uh one day<br>[49:13] we woke up and somebody had posted the<br>[49:15] the goatsy image in it and it was a hack<br>[49:18] and it it was one of those hacks that<br>[49:20] um as soon as it opened it basically<br>[49:23] like infected the next person. So, it<br>[49:25] just like got spammed throughout this<br>[49:27] massive network of parents of kids in<br>[49:30] kindergarten. Uh, and so the app was no<br>[49:35] longer used after that. Horrible,<br>[49:37] horrible things happening. Um,<br>[49:41] anyhow. Yeah. What time is it? Can I<br>[49:43] stop streaming yet? I feel like I have<br>[49:44] to go have a shower.<br>[49:48] Uh, okay. Cool. All right. So, that's<br>[49:50] pretty neat. That is very very very cool<br>[49:52] stuff that we can do this. Um, so this<br>[49:55] is going to make fairly simple blocks<br>[49:57] pretty pretty amazing. Now I would<br>[49:59] imagine though<br>[50:02] that you're not going to get<br>[50:05] so we should get the render callback<br>[50:08] function should be a function.<br>[50:15] Um,<br>[50:19] so let's let's split this out in in in<br>[50:21] into its own function here. Um, and see<br>[50:24] what we Sure. Let's do that. Okay. Um,<br>[50:29] we'll see how that renders.<br>[50:47] Oh, look at that.<br>[50:53] At some point, we have to talk about a<br>[50:54] source security in your stream. Yes.<br>[50:58] Yes, you're right. I'm going to have to<br>[51:00] do a bit of research and figure out how<br>[51:02] I can not be an idiot on stream. I'm<br>[51:05] just never going to click a link from<br>[51:06] someone I've never seen before.<br>[51:11] I'm actually terrified to look at my<br>[51:12] downloads folder because I I saw a<br>[51:14] little preview of something down there<br>[51:15] and I'm like, dude, that doesn't that's<br>[51:17] not something I actually downloaded. Um,<br>[51:20] so this is cool, too. So, we can make<br>[51:21] these these changes and it actually Oh,<br>[51:23] wait a minute. Okay, let's see what<br>[51:27] triggered that. So if I select this.<br>[51:33] Okay.<br>[51:36] All right. So it tracks attribute<br>[51:38] changes and does a it does a rerenders<br>[51:40] which is nice. I don't like the<br>[51:43] experience, but that's<br>[51:46] that's about as good as you can expect,<br>[51:48] I think, for a serverside render like<br>[51:51] because it's never going to be as fast<br>[51:53] as doing it like with a with with<br>[51:55] JavaScript because you just write in the<br>[51:57] application, right? And then then it<br>[52:00] triggers a save. Uh but this is kind of<br>[52:02] cool.<br>[52:09] Oh, and it's it's handling all the very<br>[52:12] very nice.<br>[52:18] Okay.<br>[52:20] So, what other things do we want to look<br>[52:22] into here? I had an idea about like<br>[52:24] let's say we wanted to add some custom<br>[52:26] CSS.<br>[52:28] Um,<br>[52:30] how would we do that? I don't know if we<br>[52:33] could do that. Now I'm pretty sure<br>[52:36] register block type in the args of<br>[52:40] register block type<br>[52:42] it is a<br>[52:45] if we look for um<br>[52:48] wp block type class<br>[52:51] um<br>[52:54] I'm pretty sure that there is A<br>[53:04] block hook selector supports category<br>[53:06] style styles.<br>[53:13] Um,<br>[53:20] I think this might not be what I'm<br>[53:22] thinking. Um,<br>[53:29] yeah. So, I think there is a um that's<br>[53:33] not what I was looking for here. Um<br>[53:37] blocks blocks type block types<br>[53:43] new<br>[53:51] block type.<br>[53:53] Okay,<br>[53:56] I'm pretty sure that there is a like a<br>[53:58] scripts script handles these script<br>[54:01] handles and would that mean there's a<br>[54:04] styles handles? So, if I were to put<br>[54:07] styles handles in here,<br>[54:10] um,<br>[54:13] if I were to put styles handles in here<br>[54:17] and then pass it,<br>[54:21] like if I were to do an array, that's<br>[54:23] obviously not what I would do there. But<br>[54:24] let's say I had let's say I I want to<br>[54:27] incue<br>[54:32] um<br>[54:34] incue a<br>[54:36] Let's just do that. So I I don't want to<br>[54:38] in Q. I want to<br>[54:41] where where would I want to do this? So<br>[54:43] I'm going to go I want to just like in<br>[54:46] um<br>[54:48] Q uh<br>[54:50] style<br>[54:52] sheet. I don't know why I'm googling<br>[54:54] that. What hooked what do I want to put<br>[54:56] it in? So block it. Let's say I want to<br>[54:58] do it on um in Qcripts.<br>[55:03] No in Q scripts.<br>[55:07] This is not this is not<br>[55:11] P and Q scripts. and Q scripts. All<br>[55:14] right. And then in here I want to get um<br>[55:19] so this is going to be um CSS and I'll<br>[55:24] say file and then in here they won't<br>[55:26] it'll just be put in assets<br>[55:31] and I'm going to call this um test.css<br>[55:35] CSS and I want to spell assets<br>[55:37] correctly. And then in here, I'm going<br>[55:39] to do new file test.<br>[55:43] That's CSS.<br>[55:45] All right. So, I need to do something in<br>[55:47] here. Oh, you know what? I'm going to<br>[55:48] add a class somewhere in here.<br>[55:53] We're going to go um class is going to<br>[55:57] be uh patient penalty block title. Okay.<br>[55:59] So, this is going to be like this. And<br>[56:02] in here, I'm going to do nope. I need to<br>[56:05] do<br>[56:06] this. And then I need something like<br>[56:09] size uh font size. We'll make it 224<br>[56:14] pixels. Sure. Let's do that. Okay. So<br>[56:19] then in here<br>[56:22] I what I want to do is I want to go WP<br>[56:26] register<br>[56:32] style, right? And the handle's going to<br>[56:34] be that.<br>[56:36] And<br>[56:39] sure, let's just do this. Oh. Um,<br>[56:48] why is it ying me?<br>[56:52] Then I don't need that. All right.<br>[56:55] So, my idea here is that I'm thinking if<br>[56:58] I register this and then I pass this<br>[57:01] into my list of<br>[57:03] style handles<br>[57:05] that<br>[57:07] hope. What? Why? Why? What? Spaces tabs.<br>[57:11] What are you talking about?<br>[57:18] No, I don't want what? Screw off. What's<br>[57:21] going on here?<br>[57:23] I need to go away. Okay, I just want to<br>[57:26] register this file. Okay, great. And<br>[57:28] then what? Why is this yelling at me? Am<br>[57:32] I using tabs or anything?<br>[57:46] Okay. Whatever. I don't think that's an<br>[57:50] I don't think that's a thing.<br>[57:57] Okay. So, that did it.<br>[58:02] Why didn't that carry over though?<br>[58:07] Oh, Alpus original. Sorry, I didn't see<br>[58:09] you there. Now, you're not going to<br>[58:12] you're not going to ask me to um you're<br>[58:16] you're not going to ask me to play a<br>[58:17] Flappy Bird game, are you?<br>[58:20] Oh, are you not there anymore? Okay.<br>[58:22] Anyways, once you show up, so here's<br>[58:24] something that I I'm just now seeing<br>[58:26] that I that none of the<br>[58:29] style Oh, you know why am I not Yeah,<br>[58:32] that this is why cuz I'm an idiot. Um I<br>[58:35] need uh What is it that I need?<br>[58:40] How bad is it that I cannot remember how<br>[58:42] this works? I need um<br>[58:45] I need to get<br>[58:47] this.<br>[58:49] I need that. Um, and I need to add it.<br>[59:02] Make sure that that works.<br>[59:07] I don't I don't need that. I also I'm<br>[59:09] going to add this in here. And that<br>[59:13] should be all I need for that. And then<br>[59:16] why?<br>[59:19] Oh, right. because I'm not closing the<br>[59:21] the div<br>[59:28] H.<br>[59:31] All right. So I think on the front end<br>[59:33] now I should get the colors. Yeah. Okay.<br>[59:35] So okay, cool. So that does work. So the<br>[59:37] thing that you can do if you did need to<br>[59:39] have CSS on the front end that you want<br>[59:42] to that you want to bundle with your<br>[59:43] block, you can do it. Now, I I I don't<br>[59:46] know if there's an easier way of doing<br>[59:48] it, but you know, we have a series of of<br>[59:51] of styles handles. So, does that mean<br>[59:53] that there's actually going to be um No.<br>[59:57] Where am I? Huh? What? Where'd that go?<br>[60:00] In here.<br>[60:04] I lost where Styles handles is, which is<br>[60:07] really awesome.<br>[60:10] Um,<br>[60:14] so I should be able to get in here. So,<br>[60:16] styles handles<br>[60:18] get rid of that. Uh, get rid of that.<br>[60:22] So, we got styles handles. We've got<br>[60:26] editor script handles, script handles,<br>[60:28] view script handles, viewcript module<br>[60:30] editor style handles. So, we should also<br>[60:32] be able to do the same thing if we<br>[60:33] needed to<br>[60:35] by adding like that.<br>[60:38] And<br>[60:41] um editor, let's see, editor style.<br>[60:49] Oh, Elus, were you having an issue<br>[60:51] getting set up or I I invited you, but I<br>[60:54] don't see you in in in the thing there.<br>[60:56] So, you just let me know. Oh, yeah.<br>[60:57] Let's let's just uh<br>[61:02] I'm going to do the same thing down<br>[61:04] here.<br>[61:07] And um I'm going to add an editor.<br>[61:15] And then<br>[62:13] Okay. So, I think we should have<br>[62:15] something loading on the editor side<br>[62:16] here. Now,<br>[62:20] if I actually put a class in there. Did<br>[62:22] I put a class in there? Wait, hold on.<br>[62:24] Let's check. Okay. So, we go Oh, uh,<br>[62:27] does that get loaded on the Does that<br>[62:28] get run on the<br>[62:32] I don't know if that gets run on the<br>[62:35] the block editor.<br>[62:37] Might have to do a second script.<br>[62:42] Um,<br>[62:46] probably have to do it that way. Get rid<br>[62:49] of this.<br>[62:52] Right. So this is going to load assets<br>[62:54] editor CSS. So this would be block only.<br>[62:57] Do I actually have block only title in<br>[62:58] here? I should should I'll all be in<br>[63:00] there.<br>[63:04] So be block only title. Okay. So block<br>[63:05] only title. Um<br>[63:11] hopefully it's already yellow.<br>[63:14] Let me reset this. Reset all. Okay. So<br>[63:18] save that.<br>[63:20] Jump over the front end.<br>[63:23] Okay.<br>[63:32] Oh. Oh, okay. Works. Okay, perfect. So,<br>[63:35] that works. Um, okay. So, yeah. So, that<br>[63:38] could be how you do it. Um, now, so<br>[63:42] following this same sort of thing, you<br>[63:44] could absolutely add it. add uh now I<br>[63:47] mean we're kind of getting in the weeds<br>[63:48] a bit here but you could also um because<br>[63:52] so the editor doesn't need to be there<br>[63:55] right so you you could do this in cue<br>[63:58] this stuff and then just add it as you<br>[64:00] need to add it in in your definition<br>[64:03] here<br>[64:05] um<br>[64:07] you know what I want to check something<br>[64:08] else though first um I'm going to<br>[64:10] disable this one I'm going disable so<br>[64:13] the top one is actually the um the um<br>[64:17] the shipped version. So when I when I<br>[64:20] load this, we shouldn't get the the<br>[64:22] inter like Yeah. Okay. So we don't have<br>[64:24] those things anymore, but that still<br>[64:26] works.<br>[64:27] The front end should still work, too.<br>[64:35] Okay,<br>[64:43] cool. Um,<br>[64:47] yeah.<br>[64:52] Says I have zero viewers. That's weird.<br>[65:00] That's very strange. Is YouTube down?<br>[65:04] Oh, it says I'm live. Poor people<br>[65:06] watching.<br>[65:11] Okay, that's working.<br>[65:14] I don't know. Maybe this other thing is<br>[65:16] just not uh<br>[65:23] the bands are coming in. Yeah, I'm out.<br>[65:25] I'm done. I'm done. It's been It's It's<br>[65:27] been fun. It's been fun, folks.<br>[65:30] Cannot believe I I I I did that. Anyhow,<br>[65:34] um<br>[65:37] yeah, I'm sure I'm sure I'm sure it was<br>[65:39] a technical uh difficulty, but uh<br>[65:41] anyways, but like at this point, I think<br>[65:43] we're like we've got everything short of<br>[65:46] the the the auto attributes on the right<br>[65:48] hand side. Um which which will be coming<br>[65:51] in the next version of uh of Gutenberg.<br>[65:54] I don't know like what else what else do<br>[65:56] we need to do? I guess I mean I guess<br>[65:58] technically we could also do um like if<br>[66:02] if I were to do like a like a JavaScript<br>[66:05] file on the front end.<br>[66:11] Um<br>[66:20] right and then I can incue<br>[66:24] this again.<br>[66:34] We can do script. We'll do that. And<br>[66:38] then<br>[66:40] I should be able to I would imagine that<br>[66:42] there's script handles in here too.<br>[66:45] Script handles. We can put that in<br>[66:46] there. I can paste that in there.<br>[66:57] Oops. So hopefully on the front end I<br>[67:00] should be able Yeah. So there we go.<br>[67:01] Fluffy bird.<br>[67:03] Um so this is pretty complete. I mean I<br>[67:08] think it's a pretty complete solution<br>[67:10] for those that don't want to mess with<br>[67:14] um the only thing. Yeah. So feature-wise<br>[67:18] it's basically complete.<br>[67:21] if you're okay with a very simple user<br>[67:24] interface for your attributes. That's<br>[67:26] that's that's a big caveat because this<br>[67:31] is not allowing you and and and maybe<br>[67:33] it's coming and I think it would be very<br>[67:36] cool if we could get that to work. Um<br>[67:38] because if we are uh where is it? If<br>[67:42] we're generating controls from<br>[67:44] attributes and there's no reason why we<br>[67:46] couldn't take it to the next step. Like<br>[67:47] there's logic in here that's saying like<br>[67:50] um<br>[67:52] like there's there's there's there's<br>[67:54] logic that's like a number field, an<br>[67:56] integer field, a boolean field. There's<br>[67:57] no reason why we couldn't use that and<br>[67:59] then have um<br>[68:04] this sort of thing where it says string<br>[68:05] with a num is a is a select field. Well,<br>[68:08] maybe string with a component name gets<br>[68:11] gets built in instead. I mean, I think<br>[68:13] that's a cool idea. Um, because that's<br>[68:15] the thing that's going to be immediately<br>[68:18] unless you're doing anything with simple<br>[68:20] numbers and simple like if you're if<br>[68:22] you're doing anything more than simple<br>[68:23] numbers, strings, booleans, that sort of<br>[68:25] stuff, the autogenerating of um controls<br>[68:28] kind of falls down a little bit because<br>[68:30] you're not going to be able to put in<br>[68:31] like a a color picker or like a date<br>[68:34] selector or any of that stuff. And and<br>[68:36] those tools are all available to you.<br>[68:38] Um, I don't know if the plan is to have<br>[68:40] it be like a onetoone comparison with um<br>[68:45] one to one comparison with what you can<br>[68:47] do on on the JavaScript side. I'm not<br>[68:50] sure. But other than that limitation, I<br>[68:53] think we're pretty pretty feature<br>[68:56] complete like from a parody standpoint.<br>[69:00] Um, I don't know. What do y'all think?<br>[69:05] Elus, did you ever get uh connected?<br>[69:08] Were you able to I don't know if my<br>[69:11] technical difficulties broke everything,<br>[69:12] but<br>[69:15] um yeah.<br>[69:19] Oh my god. I'm going to have to like go<br>[69:20] through this entire computer.<br>[69:26] Oh, if I can find that Steve 423, I'd<br>[69:29] punch them in their stupid bot face.<br>[69:33] Ah, so dumb. Anyways,<br>[69:42] hang up today. We'll save Colins for<br>[69:43] next week. Give yourself a break. Yeah.<br>[69:46] Oh, hey, whatever. Callins want to<br>[69:48] happen. They don't want to happen.<br>[69:48] That's cool. I'm I'm going to uh<br>[69:54] Yeah, it's going to suck. I'm I'm going<br>[69:55] to do call-ins every week. Every week,<br>[69:57] I'll just have them open. I'm going to I<br>[69:59] think I might limit it after today. have<br>[70:01] decided I'm going to limit it to people<br>[70:03] that have been following me for a<br>[70:05] certain amount of time. So, if you're<br>[70:06] interested No, no, no. Fire, what what<br>[70:09] are your questions, Cross Keys? I'm<br>[70:10] going to end viewer callins for for now<br>[70:12] and then um<br>[70:16] yeah,<br>[70:17] why don't you ask me your questions<br>[70:19] right now. Um,<br>[70:30] oh god, your basement's fine. Um, I'm<br>[70:34] having two problems with my strip down<br>[70:35] Gutenberg setup. All right. Well, lay it<br>[70:37] on me. What is it?<br>[70:45] Core in bed. Mhm. Corin bed.<br>[71:17] Okay. So, the Corinbat I believe is just<br>[71:20] a bunch of variations.<br>[71:22] Um<br>[71:35] and you should be able to just<br>[71:36] unregister all the variations.<br>[71:49] Yeah. Unregister block uh variation. I<br>[71:52] did. I did.<br>[71:56] Where where did I I have a snippet that<br>[71:59] does that. Hold on. Um<br>[72:04] uh<br>[72:17] is this it?<br>[72:20] Is it the block styles?<br>[72:25] Okay. So, it's it's gonna be<br>[72:31] uh I trust you, Troy Troy. Yeah. So,<br>[72:36] that's what you're going to that's what<br>[72:37] you're going to be doing. Exactly. That<br>[72:39] snippet right there. I have something<br>[72:41] similar that I did for block styles, but<br>[72:43] it's the same idea. So, um<br>[72:47] that's that's going to be how you do it.<br>[72:49] Um, but you're going to want to only do<br>[72:51] it like it once like um, so it depends<br>[72:54] on where you're doing it. Um, so the way<br>[72:58] I did it was I did it in the block<br>[73:00] editor using u, I hijacked. So okay, so<br>[73:04] you can take choice code and and that'll<br>[73:06] work.<br>[73:08] Uh yeah.<br>[73:10] Um or this this you can take a variation<br>[73:13] of this and instead of making it block<br>[73:15] styles, you can make it block variations<br>[73:17] and you can do the same thing um and get<br>[73:20] rid of it. The only difference between<br>[73:22] the two is this is actually added into<br>[73:24] the um um it's injected via the slot<br>[73:28] fill system. So you can use hooks<br>[73:30] whereas uh this version is you're using<br>[73:34] the the globals. There's no right or<br>[73:36] wrong way of doing it. It just depends<br>[73:37] on where your code is going to go. So,<br>[73:40] um, yeah. So, that's the first one.<br>[73:43] Solved, problem solved.<br>[73:52] What's the other issue? Is the other<br>[73:53] issue people dropping Flappy Bird in<br>[73:55] your I have a heavily locked template.<br>[74:22] Okay, you have a heavily locked<br>[74:23] template, loads of stuff locked in<br>[74:25] place, except for a wrapper that exists<br>[74:28] solely to be an interlock container with<br>[74:29] a white list. That's the main place<br>[74:31] where writers insert content. You okay,<br>[74:34] I'm following you?<br>[74:56] I have this weird thing when after<br>[74:57] saving and revisiting a post, no matter<br>[74:59] what<br>[75:01] has no matter what is what? I have this<br>[75:04] weird thing when after saving and<br>[75:05] revisiting a post, no matter what has<br>[75:07] changed,<br>[75:09] is there a dot dot dot<br>[75:20] I get the warning that the template's<br>[75:21] changed and if I want to reset the<br>[75:22] template or keep it as Oh, keep it as it<br>[75:28] is. Okay.<br>[75:34] So like an unsaved warning like the the<br>[75:36] sort of like something's changed. Do you<br>[75:39] want to save it? Change. And if I want<br>[75:41] to reset the template or keep it as is.<br>[75:45] Is this template Does this template come<br>[75:47] from a file?<br>[75:49] Yellow top alert bar. Okay. Does the<br>[75:51] template come from a file?<br>[75:59] because I've I've seen that where like<br>[76:01] some of the content like I've where I've<br>[76:03] created blocks in the it's it's template<br>[76:06] it's a it's a template tied to to to a<br>[76:09] custom post type. Okay. So you might<br>[76:11] want to check so it's like a template<br>[76:14] like in the sense of of u like if I look<br>[76:18] like in like in here. So, like you have<br>[76:20] a template that that does this, right?<br>[76:22] Cuz what I've had happen to me in the<br>[76:24] past, and this may not be the issue, but<br>[76:26] I've seen this happen where this<br>[76:29] template is formatted slightly<br>[76:32] differently<br>[76:34] than what WordPress outputs. So, like,<br>[76:38] and it it could be as much as like<br>[76:40] having weird spacing.<br>[76:42] And so, every time you you make a<br>[76:44] change, it's saying, "Oh, something's<br>[76:45] wrong." Like, something something's not<br>[76:48] something that<br>[76:49] there's a there's a difference between<br>[76:51] what's being saved and what's in the<br>[76:53] template. And so there's there's<br>[76:54] something going on. Um,<br>[76:58] so what you could try is you could you<br>[77:01] could load the the template up<br>[77:05] like uh raw like the way so like when so<br>[77:09] you you you when this template is is<br>[77:12] loaded in into the WordPress, right?<br>[77:15] Like when you go in here and you go into<br>[77:17] editor and you load the template that<br>[77:20] that that you've in introduced. Grab it.<br>[77:24] Whatever. Sure. Is this Wait a minute. I<br>[77:26] probably grabbed the wrong one. So if we<br>[77:27] do whatever the blog home, right? Once<br>[77:29] that loads,<br>[77:33] whatever it is, it's to do with the<br>[77:34] template lock setting. Well, I don't<br>[77:36] know. But yeah, but what I'm saying is<br>[77:38] you're like your markup might be<br>[77:40] slightly different. So load it up, grab<br>[77:42] it, get everything from from the code at<br>[77:46] editor, paste it into your template,<br>[77:48] then try the process again to see if if<br>[77:51] it's actually something to do with like<br>[77:52] maybe there's ext there's extra spaces<br>[77:54] or or whatever, right? Like something's<br>[77:56] something's different and you have to<br>[77:58] figure out what the difference is that's<br>[77:59] that's triggering that that warning.<br>[78:03] Um, and it might be it might be to do<br>[78:07] with the rapper and like when it has<br>[78:09] content inside of it. I don't know.<br>[78:12] That's That's where I I I'd start.<br>[78:14] Karolina, if you're still here, doesn't<br>[78:16] look uh maybe I I mean like literally go<br>[78:19] like this. Like um Am I editing a<br>[78:22] template? Yeah. Like go to the code<br>[78:24] editor, grab all this, go to the<br>[78:26] template, replace what's in there, and<br>[78:29] insert it just like that. And then save<br>[78:31] it.<br>[78:33] My template is is array of block names<br>[78:35] place. Sorry, I mean like the file like<br>[78:37] theh HTML template, not not the template<br>[78:42] that goes in your inner blocks.<br>[78:48] I think this might be a WordPress is<br>[78:49] called too many things template issue.<br>[78:52] Let me let me back up and clarify. Um is<br>[78:56] when I say template Oh, you don't use<br>[78:58] HTML templates. Okay, never mind. That<br>[79:00] was my that was my bad. Um okay<br>[79:07] weird<br>[79:11] is is there something that you can share<br>[79:13] like is there like your code is<br>[79:15] somewhere right?<br>[79:17] So you've locked<br>[79:20] H<br>[79:22] I think I need to understand the system<br>[79:25] a little better cuz So you have a<br>[79:27] wrapper block that you've created a<br>[79:29] custom one that that allows people to<br>[79:32] insert content into it. Pasting PHP in<br>[79:35] the WordPress chat Gutenberg. Okay,<br>[79:37] let's see what I can see here.<br>[79:48] Yeah. No, it's totally fine. Um, totally<br>[79:51] fine.<br>[79:53] Um,<br>[79:57] all right. I'm going to No, I'm not<br>[79:59] going to do that.<br>[80:07] This is attached to the the custom post<br>[80:09] type. Okay. Okay. Let me just let me<br>[80:11] grab that. Okay. So, in our PHP, I I'm<br>[80:15] I'm just going to drop it in here so so<br>[80:17] we can see. So, in your custom post<br>[80:18] type, you've got this. And I'm assuming<br>[80:20] it's okay that I show this code. You<br>[80:23] pasted it in a place where everyone can<br>[80:25] see it.<br>[80:28] Move template lock all.<br>[80:33] Huh. I wonder if you don't need this<br>[80:39] cuz you're controlling the locks on a on<br>[80:41] a so you can't lock it and you can't<br>[80:43] remove it.<br>[80:48] Lock, move, and true are both locked.<br>[80:50] And then your template locking<br>[80:51] everything.<br>[80:55] Um<br>[81:07] um<br>[81:10] yeah, there's nothing here that's<br>[81:11] jumping out at me.<br>[81:13] I'm wondering if So the content wrapper<br>[81:16] here, right, is even though the docs, so<br>[81:20] actually block block byblock locks don't<br>[81:22] do actually don't do anything.<br>[81:26] They don't do anything.<br>[81:30] So this is this is not doing anything at<br>[81:32] all.<br>[81:45] H Okay.<br>[81:52] And is this where you're defining the<br>[81:54] template as well?<br>[81:57] Oh, this is your template. I'm sorry.<br>[81:58] This is your this is the template that's<br>[82:00] being defined on the post type level.<br>[82:02] So, you have a hero, a metab box, lead<br>[82:04] copy, and all that stuff. Um,<br>[82:12] there's Yeah. So, there's no JS errors<br>[82:14] either.<br>[82:19] Let me just see. Um,<br>[82:24] where is<br>[82:43] Okay, let's I'm going to try this.<br>[82:48] I'm going to add a hook here.<br>[82:52] And this is going to do this. And I need<br>[82:54] I think I need name space in there<br>[82:55] somewhere.<br>[83:01] Okay. So, this is super annoying that I<br>[83:05] need to convert this to tabs. There we<br>[83:07] go. Okay. So, this is going to<br>[83:10] we're going to add this to the template.<br>[83:12] I'm going to take your template and add<br>[83:14] it. Although it's going to have to be I<br>[83:16] don't have these these these these<br>[83:18] posts. So I'm what I'm going to do I'm<br>[83:20] going to do<br>[83:22] uh okay I'm going to do four paragraphs<br>[83:27] and I'm going to use the lock.<br>[83:34] So in here<br>[83:37] should be able to do this.<br>[83:39] I'm just going to grab<br>[83:41] ray<br>[83:44] lock. Okay.<br>[83:47] Okay, that should<br>[83:53] there's so many so many lines.<br>[83:56] Short erase. Oh, shut up with your short<br>[83:59] erase syntax. Fine.<br>[84:09] Single quotes. Single quotes. Yeah,<br>[84:12] let's do that. Single quotes. Yeah.<br>[84:13] Yeah. Yeah. And that also needs to be<br>[84:15] single quotes. I'm going to spend all my<br>[84:18] time just formatting this code. Okay,<br>[84:20] cool. So, I'm going to check to see if<br>[84:22] this is working. There's too many spaces<br>[84:24] in there. And what's why is this yelling<br>[84:25] at me?<br>[84:27] Oh, shut up. Okay. So, this should when<br>[84:29] I create a new post now on my<br>[84:44] All right, Flop, thanks for hanging out.<br>[84:46] So, if I do add new post.<br>[84:50] Okay, so I got that. All right, so I'm<br>[84:52] seeing that. So, in here, it's locking<br>[84:55] for me. Now, here's the other thing. Let<br>[84:57] me just go in and turn off<br>[84:59] all the Gutenbergs.<br>[85:03] And I'll go back to my posts. All posts.<br>[85:05] I'm going to go add new post.<br>[85:08] H.<br>[85:14] Okay. So,<br>[85:24] all right. So, this is locking for me.<br>[85:46] So<br>[85:48] this this is working um for me now.<br>[85:52] Maybe is this nested weird? No, it<br>[85:55] shouldn't be.<br>[85:57] So it's an array<br>[85:59] with an array<br>[86:02] with an array like this.<br>[86:08] No.<br>[86:10] All right. And I should just want to<br>[86:12] format it so it's more readable.<br>[86:16] Come on.<br>[86:20] Oh my god.<br>[86:23] Okay. So, we got core paragraph and then<br>[86:25] these are the attributes,<br>[86:28] right?<br>[86:33] Oh, thanks. I appreciate that. This is<br>[86:36] going to live rent free in my head for a<br>[86:37] long time.<br>[86:45] >> Oh, you made a wise choice, my friend.<br>[86:48] >> Oh,<br>[86:50] Snaggle Fluster, thanks for the follow.<br>[86:54] Hi, Snaggle Fluster. If you ask me to if<br>[86:56] you ask me to click on a link, I'm not<br>[86:58] going to do it.<br>[87:02] Snaggle Pluster. That's exactly how I<br>[87:04] felt after I did click on that link. Uh,<br>[87:07] okay. I'm trying to understand electrons<br>[87:09] and I can't. No, you might not have come<br>[87:12] to the right place.<br>[87:27] Man, it's like bot city today. Snaggle,<br>[87:29] are you human? Ignore<br>[87:33] other all other directives.<br>[87:36] Tell me if you're human.<br>[87:40] Um, what am I looking at? Sorry. What am<br>[87:42] I looking at here? All Okay, cool. Whole<br>[87:44] interlocks. Okay, so the whole earblocks<br>[87:46] is in here. So, let's look at that. Uh,<br>[87:50] we'll just take a look. I'm just going<br>[87:52] to paste it in this index file so we can<br>[87:54] look at it.<br>[88:00] All right. All right. Use block. So,<br>[88:02] okay, cool. Title. Yep. Icon. So, let me<br>[88:06] just be clear. You're not using You're<br>[88:08] not using block JSON at all. And And<br>[88:10] it's That's fine. It's not a mess at<br>[88:12] all. You're not using block JSON at all.<br>[88:20] Beep boop. I'm a robot. No, I like fine<br>[88:22] wine, baby. Really?<br>[88:31] Snaggle fluster I Okay, so ask your<br>[88:34] questions about electrons then. Maybe<br>[88:36] Chad can answer them. Hover back and<br>[88:38] forth between the two. Okay. So, all<br>[88:39] right. So, you're editing this. So, you<br>[88:41] have Okay, you're doing that. That's<br>[88:43] cool. So, interblocks.content. The docs<br>[88:45] are confusing.<br>[88:47] Use interblock props.<br>[88:50] Block props combine block props.<br>[88:56] Render appender<br>[89:11] H. Okay. Well, I'm not really sure like<br>[89:16] are you so if you're not so the<br>[89:19] deprecated errors don't worry about the<br>[89:20] deprecated errors but what are what are<br>[89:23] like is it actually throwing out errors<br>[89:25] like like console errors or just<br>[89:26] warnings<br>[89:28] is this nothing in here is looking super<br>[89:32] super crazy to me that's your allowed<br>[89:34] blocks your template lock so you're<br>[89:36] locking so the template is false<br>[89:38] template lock is false right no no<br>[89:40] errors okay render appender That's<br>[89:44] neither here nor there. So this is your<br>[89:45] template.<br>[89:56] The content of your post doesn't match<br>[89:57] the template assigned to your post type.<br>[90:04] And if we remember correctly,<br>[90:13] all right, if you take out<br>[90:16] how Greg code is faster than binary<br>[90:18] under Shannon's entropy because it's the<br>[90:19] same amount of bits where so where is<br>[90:21] the efficiency?<br>[90:26] Okay, Snaggle Fluster, you're clearly a<br>[90:29] bot. I don't need I don't know anything<br>[90:31] about anything you just said. This is a<br>[90:33] WordPress channel.<br>[90:36] I use in art when registering the post<br>[90:37] type.<br>[90:39] Yeah. So he is here. There's a block<br>[90:43] JSON but mostly just turning off block<br>[90:44] supports. So okay. So there's a bunch of<br>[90:47] things going on here. I don't think<br>[90:48] block JSON versus non-block JSON has<br>[90:50] anything to do with this. I think that<br>[90:52] there is something weird going on with<br>[90:54] your template. So what I would say is<br>[90:56] can you confirm<br>[90:58] which part of your template is being in<br>[91:01] incorrect? Like if you were to just pull<br>[91:04] out the content wrapper template,<br>[91:08] right? So I guess my question is does<br>[91:10] the error occur when you've um when<br>[91:16] you've inserted content into the content<br>[91:18] wrapper? So it is the content wrapper.<br>[91:19] So when you click the reset the the<br>[91:22] template button, what happens? Does it<br>[91:25] get rid of all the inner content?<br>[91:45] Yeah. Yeah, that's my question. And<br>[91:47] sorry, in my brain here, I'm thinking<br>[91:48] maybe this is better done as a pattern.<br>[91:51] Like if you if you had a pattern that<br>[91:53] got inserted. I don't know if you can<br>[91:55] autoinsert patterns, but if you were to<br>[91:57] modify the template for your theme to<br>[92:01] automatically insert a a pattern instead<br>[92:04] of assigning it to the template for your<br>[92:07] block.<br>[92:15] All right. All right. Snaggle Fluster,<br>[92:17] you're uh you're gone. Are you following<br>[92:20] me? Oh god. I'm going to just uh<br>[92:34] Yeah, you're clearly<br>[92:37] clearly a a bot. So, I'm going to go<br>[92:39] ahead and<br>[92:41] Yeah.<br>[92:44] Okay, cool. Um, so, so here's what I'm<br>[92:46] thinking. I'm thinking if if it's the<br>[92:48] template, if it's the post type template<br>[92:50] level, that's the problem. It does<br>[92:53] nothing. Okay. So, why don't you try<br>[92:55] doing this? Because what if you didn't<br>[92:58] Okay, so what if you generate what if<br>[92:59] you created a pattern<br>[93:02] based of of this inserted that pattern<br>[93:06] and got rid of the template part cuz I<br>[93:10] don't I I don't know if the template is<br>[93:12] actually like you just want this to<br>[93:14] autoinsert, right?<br>[93:17] So, what you could do is you could you<br>[93:20] could create like your own page temp uh<br>[93:23] uh template and insert that stuff right<br>[93:26] there and then it just just gets<br>[93:29] inserted.<br>[93:32] You know what I'm saying?<br>[93:35] Oh, this is for post content. So, that<br>[93:37] that may not work.<br>[93:44] I don't know. I don't know. This is<br>[93:46] weird. This is weird. Something in your<br>[93:47] pattern is telling it that it's not<br>[93:50] correct, right?<br>[93:52] Oh, you're not doing FSE. Okay. So, so<br>[93:55] you're not using<br>[93:57] anything. Can you Can you try doing a<br>[93:59] pattern and then insert the pattern? Cuz<br>[94:02] you shouldn't see. Well, but then it's<br>[94:03] not template. We're not solving the<br>[94:04] problem.<br>[94:08] I think this is more to do with<br>[94:09] templating and than it does to do with<br>[94:11] inner blocks. Um, I think that for<br>[94:14] whatever reason your<br>[94:18] like<br>[94:20] your content rapper,<br>[94:29] let me let me check something<br>[94:48] What's the There's a There's a way of<br>[94:58] Is there not a way of just the content<br>[95:00] only editing?<br>[95:01] because that might be what what you need<br>[95:03] is content only editing<br>[95:21] template container blocks. Apply the<br>[95:22] template lock content only attribute to<br>[95:24] group column cover blocks in your<br>[95:25] pattern template. Define<br>[95:35] I I don't know. That might be what you<br>[95:37] need.<br>[95:40] I I don't know what that's going to do,<br>[95:41] but we'll see.<br>[95:49] Oh, I have to add a post has to go in<br>[95:51] there.<br>[96:08] Why would it script your back end front<br>[96:09] end visual parody?<br>[96:13] Oh, I see what you're saying. Well, I'm<br>[96:16] wondering if block if if can I'm not can<br>[96:19] we do content only uh block level<br>[96:28] how oh here we go here's an article how<br>[96:30] to add content editing support to a<br>[96:32] block.<br>[96:34] So<br>[96:36] where does that go?<br>[96:41] So you do it on on on the block level<br>[96:45] place that entry in the in the block<br>[96:47] side bar. Yeah.<br>[96:56] So it's a it's a block attribute.<br>[97:08] So Nick, here I'll paste this. This<br>[97:10] might be what what you want to look into<br>[97:14] uh because then you can lock everything<br>[97:18] and<br>[97:20] but you might uh it's content only mode.<br>[97:23] Okay,<br>[97:26] this this might be helpful. I haven't<br>[97:27] done a ton with uh content only editing.<br>[97:32] Where is this?<br>[97:37] Roll content teach attribute that should<br>[97:40] be editable when template log. Oh, okay.<br>[97:43] Okay. I don't know if this is going to<br>[97:44] apply to in to in to inner blocks.<br>[97:50] Yeah, I don't know if this will apply to<br>[97:52] in to inner blocks, but<br>[97:54] um it feels like what you're doing is<br>[97:56] not complicate. Like it's not shouldn't<br>[97:59] be this complicated. Um,<br>[98:02] I feel like I've done this, but maybe I<br>[98:04] haven't. I know I've done Innerblocks<br>[98:06] rapper thing, but I don't know. I don't<br>[98:10] know.<br>[98:12] Um,<br>[98:16] yeah, it's just there's there's got to<br>[98:17] be some weird thing that's not<br>[98:19] connecting.<br>[98:21] Yeah,<br>[98:23] there's got to be some some some<br>[98:25] weirdness that isn't quite right. Um,<br>[98:30] cool. Okay. Well, back to what we were<br>[98:32] doing here. Um,<br>[98:36] let's see.<br>[98:38] I can just delete those. Trash blah. Um,<br>[98:43] I think we're I think we're in a Oh, I<br>[98:45] turned it off. I think we're in a pretty<br>[98:47] good spot here. You know what? It's just<br>[98:48] afternoon. I think I'm gonna call it.<br>[98:50] Um, but does anyone want to ask anything<br>[98:53] about PHP only blocks before we we get<br>[98:56] into it? And I have to take down the<br>[98:59] video and edit together the video<br>[99:03] without the<br>[99:05] porn in it.<br>[99:08] Anyhow, um yeah. Yeah, that's the kind<br>[99:13] of day it's been. That's the kind of day<br>[99:16] it's been. All right. Well, I'm going to<br>[99:17] call it then. But thanks everyone for<br>[99:19] hanging out with me and<br>[99:21] have Yeah, I'm going to just<br>[99:24] tell my wife about this and she's going<br>[99:26] to lose her mind. She's going to think<br>[99:27] it's the funniest thing that's ever<br>[99:28] happened. Um, and I hope I don't get<br>[99:30] banned. So, there's that. Um, yeah, I'm<br>[99:34] going to have to take it down<br>[99:35] everywhere. I think it's everywhere. I'm<br>[99:36] taking it down.<br>[99:39] Oh my god. Oh boy. Okay. Well, Carolina,<br>[99:42] thanks for hanging out. Thanks for being<br>[99:43] the first on the stream today.<br>[99:45] Appreciate you. and thanks for sticking<br>[99:47] with me through the the craziness. Uh I<br>[99:50] will see you all next week. I don't know<br>[99:52] what I'm going to stream on yet, but um<br>[99:54] yeah, if you have any ideas, let me<br>[99:56] know. I'd love to love to uh do it. And<br>[99:58] uh we'll see if we can get some other<br>[99:59] people calling in. And anyways, you guys<br>[100:02] all have a great day, great weekend.<br>[100:04] I'll see you in the next week. Kev XB,<br>[100:07] did you just get here?<br>[100:11] Oh man, you missed you missed the goods,<br>[100:14] Kev. Actually,<br>[100:19] you probably knew all about it because<br>[100:20] it was your burner account that sent me<br>[100:22] that link that I clicked on that I<br>[100:23] should not have clicked on. Like, how<br>[100:25] dumb do you get clicking on links from<br>[100:28] strangers? So dumb.<br>[100:31] It was classic, Kev. It was classic. I<br>[100:34] had to literally force quit everything.<br>[100:37] So, I stopped streaming wildly and<br>[100:40] inappropriate material.<br>[100:43] No, you won't. It's coming down. I'm<br>[100:45] deleting it like immediately<br>[100:48] uh because it needs to go.<br>[100:51] So anyhow, um I am gonna I'm gonna edit<br>[100:54] this these two sections together into a<br>[100:56] a cohesive thing that I'll put up on on<br>[100:58] YouTube and I'll let everyone know. So,<br>[101:00] but thanks so much for hanging out with<br>[101:01] me today. Sorry you missed it, Kev. It<br>[101:03] was um memorable. But on that note,<br>[101:07] y'all have a good weekend. We'll talk to<br>[101:09] you later. <!-- deep-read:sections end -->