WP Café #121 | Position: Sticky; Fixed!

## Metadata
- Author: [[Highrise Digital]]
- Full Title: WP Café #121 | Position: Sticky; Fixed!
- Category: #articles
- Document Note: ---
tags:
- #wordpress
- #webdevelopment
- #blockeditor
- #asyncprocessing
Author: Keith Devon & Mark Wilkinson
Source: WP Café #121 | position: sticky; fixed! (YouTube Transcript)
Reference: https://www.youtube.com/watch?v=WOJRn_UTQkU
date created: 2025-05-26 11:50
---
# Title: WP Café #121 | Exploring Sticky Positioning, Block API v3, Async Processing & More
## 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)
- 🔍 [SEO Evaluation](#-seo-evaluation)
- 🎯 [Conclusion](#-conclusion)
## 📝 Summary:
This episode of WP Café dives into real-world WordPress agency experiences, focusing on technical and operational challenges. Key discussions include implementing CSS `position: sticky;` in block editor layouts, the introduction and implications of Block API version 3 (especially with Advanced Custom Fields), clarifications on async vs. background processing for WordPress jobs, and a personal update involving a broken sit-stand desk. The hosts also share lessons from launching a new project called Offline Kids, emphasizing the importance of thoughtful messaging, inclusive language, and iterative user feedback.
## 📖 Main Content:
The conversation blends casual storytelling with deep technical insights. It begins with anecdotes about managing a garden and ongoing development challenges, particularly with job relay integrations affecting some users. The Offline Kids project illustrates challenges in balancing early launch enthusiasm with brand clarity and messaging refinement, stressing the value of honest, constructive feedback over mere praise.
Technical exploration includes a sticky sidebar nav implementation that failed due to CSS overflow clipping issues, resolved by using the newer `overflow-clip` CSS property — showcasing a subtle but crucial front-end fix.
A detailed breakdown demystifies async requests and background processes in WordPress job handling, highlighting the difference between immediate but non-blocking async tasks and ordered queue-based background jobs. This clarity benefits developers managing heavy or complex background workloads.
The discussion then shifts to legacy challenges with ACF blocks that predate Block API v3, which introduces iframe-based block editing to isolate front-end styles and avoid bleeding styles into the editor interface. Migrating existing blocks to this new system poses complexities but promises cleaner editor experiences. The episode closes with a light-hearted story about replacing a broken IKEA desk and reflections on conference attendance preferences.
## 🗒️ Notes
- **Introduction & Setup (00:00 - 02:00):**
- Hosts Keith and Mark welcome listeners; overview of episode topics.
- Share casual life updates including garden water management and weather.
- **Job Relay Integration (02:00 - 05:55):**
- Discussion about spike in job posting issues related to Job Adder integration.
- Work on optimizing job sending by checking update timestamps to reduce redundant processing.
- **Offline Kids Project (05:55 - 14:15):**
- Messaging and branding guidance from a communications specialist cousin.
- Importance of inclusive language (e.g., “parents and carers”).
- Deliberation on timing the public launch—balancing iteration with polish.
- Positive feedback and critical suggestions welcomed to improve the site.
- Notable spike in newsletter signups after being mentioned in a UK movement newsletter.
- Reflections on project evolution: the site as a platform versus mailing list, podcast, or social media as primary assets.
- **Sticky Position CSS Issue (14:15 - 19:00):**
- Attempt to implement sticky sidebar nav using `position: sticky` on group block inside columns.
- Issue caused by parent container’s `overflow: hidden;` preventing sticky positioning on front end.
- Solution: use CSS `overflow-clip` property, which behaves similarly but fixes sticky behavior in modern browsers.
- Note on browser support: widely supported except older iOS versions.
- **Async vs Background Processes (19:00 - 24:30):**
- Async requests run immediately but don’t block other processes — good for tasks like sending notification emails.
- Background processes run queued jobs sequentially — ensuring order and preventing overlaps.
- Testing confirmed jobs queue properly without premature overlap, even with large datasets (~2,000 jobs).
- Discussion of PHP vs JavaScript execution models—PHP is synchronous; JS is asynchronous by nature.
- **Legacy Block API v3 & ACF Issues (24:30 - 35:30):**
- Older ACF blocks do not use block JSON metadata and cannot fully utilize Block API v3 features.
- Block API v3 enables loading the editor inside an iframe, isolating front-end styles from the editor interface.
- Challenges migrating existing blocks to API v3; tradeoff in preview/edit modes (must force preview mode).
- Plans to add editor controls for margin, padding, border-radius to ease implementing designs.
- CSS bleeding issues from front-end styles affecting editor appearance and UI.
- Positive note: some users successfully migrated ACF blocks to block.json approach without breaking content.
- **Personal Updates & Miscellaneous (35:30 - End):**
- IKEA sit-stand desk stopped working; warranty replacement arranged.
- Reflections on conference attendance: preference for smaller, local events over large-scale conferences like Work Camp EU.
- Brief shoutouts to community and viewers, encouraging engagement and feedback.
## 📖 References:
- WP Café YouTube Episode #121: https://www.youtube.com/watch?v=WOJRn_UTQkU
- WordPress Block API documentation
- ACF (Advanced Custom Fields) plugin docs
- CSS overflow-clip MDN documentation
- Async and background job processing concepts in WordPress context
## 🗣️ Paraphrase:
1. Original:
“An async request is a one-off job that you want to run immediately. It happens straight away, but it doesn’t stop anything else from happening at the same time.”
Paraphrase:
An async request is a task executed instantly without waiting, allowing other operations to proceed concurrently without interruption.
2. Original:
“Because the block editor is loaded in an iframe in API version 3, front-end CSS no longer bleeds into the editor interface, but older blocks without JSON metadata cause style conflicts.”
Paraphrase:
With the block editor running inside an iframe from API version 3 onwards, front-end styles are isolated from the editor, though legacy blocks lacking JSON metadata still cause style overlap issues.
## 📰 Newsletter:
Hey WordPress enthusiasts! This week on WP Café, Keith and Mark share behind-the-scenes tales of running a WordPress agency—from troubleshooting sticky CSS in block layouts to decoding async versus background job processing in WordPress. They also explore real-world challenges upgrading legacy ACF blocks to the new Block API v3 and share lessons learned launching a screen-free activity directory for kids, emphasizing the power of honest feedback and clear messaging. Whether you're a developer, site builder, or community advocate, their insights on balancing technical upgrades with user needs are gold. Don’t miss the tips on using CSS `overflow-clip` for sticky positioning fixes and the deep dive into queued background jobs. Get cozy with your brew and listen in here: https://www.youtube.com/watch?v=WOJRn_UTQkU
## ✅ Action Items:
- Share learnings on CSS sticky positioning nuances in block editor themes with the Word
- Summary: Follow us:
X / https://twitter.com/highrisedigital | https://twitter.com/wpcafeshow
Linkedin / https://www.linkedin.com/company/highrisedigital/
Website: https://highrise.digital/ | https://wpcafe.show
Checkout our products:
JobRelay: https://jobrelay.io
Integrate your WordPress website with popular job posting and distribution software.
RecPress: https://recpress.com
Better WordPress job board, done for you.
Highrise Digital is a 2 person WordPress development team based in the UK. They primarily work with Recruitment Agencies to build integrations with WordPress. They also build WordPress recruitment websites as well as sites for companies in other selected sectors.
On this channel we provide WordPress development and business advice for solo and small WordPress teams.
We help you to level up your development and business skills with quick tips, live coding and chats with other industry professionals.
There's an overwhelming amount of information out there and lots of people telling you the 'best' way to do things.
At Highrise Digital, we strip away the guilt and show you practical, pragmatic ways that developers can improve. This is how WE do things, warts and all!
- URL: https://youtube.com/live/WOJRn_UTQkU?si=L0AmKK83SvclIABl
Hello and welcome to episode number 121of WP Café, the show where we share thereal unfiltered experience of running aWordPress business. I'm Keith Devon, andas always I’m joined by my co-host MarkWilkinson. We're from High-Rise Digital,a tiny agency building WordPresswebsites and products. Today we'rediving into a number of differenttopics. We've got a few items to discuss,including position sticky, the block API version three,and using ACF. We've got async versusbackground processes. We've got anupdate on offline kids, and theexciting news of Mark's new desk. So,grab a brew, settle in, as we explorewhat it's really like behind the scenesof our business. You can follow us overon@wpcafe show, and find us on Blue Sky andthe web at wpcafe.show.
If you enjoyed the episode, pleasedo hit subscribe, leave us a comment,share it with somebody, hit the likebutton—whatever you can do tohelp out. That would be super useful.And as always, we'd love to hear yourthoughts and comments, especially ifyou're watching along on YouTube live.Please do say hello in the comments.
There. Join the conversation and let usknow what you think. Before we getstarted, as always, a little update. UhMark, how's your week been? It's beenfine. Hopefully, you can hear me allright. I've got a bit of a setup todaybecause obviously this desk. Um, I'veconstructed said desk, but it's notactually operational as such with all mytech kit. So, I've uh decamped into thekitchen with a different microphone.
So, hopefully I sound all right. Um, I'vebeen all right this week. Yeah, it's um,I've just finished nothing to do withWordPress, but I've just finishedspending 40 minutes trying to dismantlea paddling pool outside. Dismantling apaddling pool. Well, do you keep itoff in the winter and put it away in thesummer? So, I thought you guys do upnorth. Well, it was full of water. It'sbeen full of water for the last twoweeks because the kids have been out. So,the weather's been great. And then thewater started to resemble a greenswamp. Yes. So, I had to sort of get ridof the water, then clean it somehow,which is manky. And then it's now kindof like sat in the sun drying because it'sgoing to rain tonight here apparently.
Um, for the first time in a long time.Oh, we had a torrential downpour yesterday.I literally put the sprinkler out the night before because my garden is absolutely bone dry.So, I’d had the sprinkler on for a bit, and it literally was torrential within 24 hours.So, that was a bit of a waste of water, but there you go.Oh, well. So, I’ve used all the water.I’ve filled the water up. I’ve watered all the plants, watered all the plants at the front,and then let the grass have a bit of it as well because obviously it’s been so dry.So, it’s not gone to waste. Not gone to waste.But that was my day.
Yeah, so I’ve been absolutely filthy and wet through.You know you’re middle-aged when you’re kind of hoping for rain for your garden.Yeah. Yeah.So, that was my day today. Other than that, just ticking along really.Um, a few bits and bobs, things I’ve done.I’m working on some job relay updates which we spoke about last weekand kind of learning more about that.Uh, well, you pushed it live since we last spoke, right?I pushed it live.Yeah.Um, so the background queue process seems to work.Like, I mean, it works. I can see it works because jobsGet posted. But what I would say is thatI've had an unusually high request frompeople saying that my jobs haven'tposted, and they're actually job adderintegrations. And when I'm talking high,I'm talking I think we've got like 80odd customers that use job adder. I'mtalking like three people rather thanmaybe one, yeah, that I’d normally get.
So it’s not unusually high, butI don’t know if that’s acoincidence or whether that’s somethingto do with what I’ve done. But we’llhave to have a look at it when we lookat each individual. Yeah, I’m surethere’s, I’m sure there are someoptimizations and some tweaks that aregoing to have to be made. You know,we've already spoken about a few waysthat we can potentially, yeah, one ofthem was at the moment every job thatcomes to us gets passed on to the WordPress site.And actually, that doesn't make any sensebecause it might not have been updated.Um, so each client has an XML feedessentially that job had to deliverto job relay, and it might be thatthey’ve changed one job, but actuallywhat we’re doing is sending all thoseJobs again. So I've kind of been workingon a little system where I can check whether it's been updated. There'san updated date field and if that hasn'tchanged, then just ignore it really.
Don't carry on sending it. It also speedsthe process up, just makes it a littlebit more efficient, I think. So, Ineed to work on that. But as I said toyou this morning and yesterday, I'm onlyon one monitor at the moment, sat in thekitchen. So, I can't cope with heavydevelopment with one monitor. It's justnot productive; my productivity is down 50%.Yeah, so we'll get stuck into that next week. Uh, but it's bankholiday Monday. Got to remember that.As you go. Yeah, not bad. What aboutyourself? Yeah, good week.Um, lots of progress and excitement withOffline Kids. So, uh, I don't know ifthat'sworth starting with, diving intostraight away. I guess so. Good to. Um,so yeah, obviously, if you haven'tbeen listening along to the show before,uh, we launched a website a couple ofweeks back called Offline Kids.Offline.kids is the domain and itis a directory of screen-free activities.
Uh, that you can do with your kids, oryour kids can do, uh, themselves. Um, andwe've been building that up.You know, building the site itself,adding the activities, you know, justgenerally trying to edge it forward andkeeping track of things. So this week, um,I had my cousin come around, who is apretty top communications kind ofspecialist. She used to work for atop consultancy, um, and as you know, Ican't remember some of the brands she's worked with—some megabrands in the UK, uh, primarily internalcommunications, uh, but generally like branding andmarketing type stuff, strategic typestuff. Um, so she had done alittle,uh, kind of slideshow of like the kind ofthing that we might put together topresent our message to other people,whether it's likeum, like press release type stuff orwhether you were like pitching to aninvestor or a partner or whatever. So,she's putting stuff together
around, uh, like the mission. Uh, she'sputting stuff together aroundcompetitors. She's putting her stufftogether around the tone of voice. Um,So, that was one of the mostinteresting things for me: just to make surewe're getting that right. So, make surethat the language is alwaysinclusive and accessible. Um, and theactivities and everything. Um, you know,for example, talking about parents andcarers rather than just parents. Um, andinterestingly, I actually had an emailor someone filled in the contactform on the website this week, um, andsaid, "I'm actually a grandparent." Um, andthis site's going to be really usefulbecause I have to look after my kids andstuff. So, um, yeah, that wasgreat, doing that. Um, and actually,that's my cousin; she actually pulled meback a little bit fromkind of launching the website, youknow, trying to really get the word out.
I was like, "Should I set up all thesesocial media profiles and start postingstuff?" And she's like, "I think you justneed to get some of this stuff rightfirst. Um, really like dial in themessaging and the branding and probablyimprove the site slightly before youreally start pushing it. And I've gotreal mixed feelings about.
That is because we’ve spoken about it before.There's a lot of advice in the startup world about just gettingstuff out there, getting real feedback,just going for it, and improving overtime. Don’t wait for things to beperfect. So when is the site kind ofready to go and ready to tell theworld about? I don’t know, it’s a bitdifferent though than a product that we’ve built before. I thinkbecause obviously, if you take Job, really,when it was in its reallyearly stages, it was kind of like nothinglike it is today. The concept was thesame, but the rawness of how itworked wasn’t, and people actually didn’tcare because it did a job. But also,the way we presented it — I mean, thewebsite was just like a vanilla WordPresstheme. We didn’t, but that’s what Imean, and my point being is that becauseit solves a problem, people generallydon’t care. I just wantthe problem solved, so they don’t reallycare about the website and the fact thatit’s a bit raw. Yes, granted, fixing thosethings makes it better. I’m not sayingyou shouldn’t fix them, but I just think
But in this instance, it's not really aproduct. I think when people land on thesite, those impressions probably domatter, because the site is theproduct. Exactly. So I think it'sprobably a little bit different in thatit's not quite what we usually say —like, just get it out there and so on. Ithink there has to be sort of astandard. I agree, and I’ve had somegood feedback so far. Generally, I’vehad really good feedback; like everyoneyou know, uh, but I’ve also had somecritical feedback about a few things,which is actually what I want. You know,it's really nice for people tosay nice things. It's really useful for people topoint out the things that aren't great and that couldbe improved. Like, that's what Ireally want. So if you're so inclined,to go and check out offline.kids,please do say nice things, but pleasealso say honest, critical things. Thatwould really help. Um, so that was great. Andthen it was funny. There’s alesson there for feedback, isn't there?
Cuz actually so many times you ask forFeedback for something and everyonejumps on and says, "Yeah, it'swonderful. It's wonderful. It'swonderful." But you don't want that, doyou? You actually want them to be almostannoying in a way and say, "Well, Iwent on and I couldn't see this or Ididn't do that or, you know, I think youwant them to tell you all the stuff thatjust bugs them, but they don'treally want to tell you it because it'snot, they don't feel as though they'rebeing nice, but actually, they are.
That's exactly what youwant them to do." Yeah. Exactly. Andobviously try and say it in a nicer way,but that's the sort of stuff you've gotto be pointing out as for feedback, Ithink. Yeah. Yeah. Anything that youdidn't understand or didn't get orcouldn't find or, you know, that sort ofstuff.
So it was funny because the dayafter, I was with an — so I was with an onWednesday, and then yesterdayI opened my inbox and I'm on theSmartphone-Free Childhood newsletter.So it's a movement here in the UK totry to kind of delay giving kidssmartphones for as longYears old. Um, so I'm on that newsletterand I was just scrolling through andbrowsing that newsletter, and I was like, "Hang on a sec."offline kids was mentioned; I waslike, "That’s cool."So I think because I'min one of the local WhatsApp groups forthat organization, I posted it a fewdays previously. Um, and then after Annsaid, "Don't try topromote too hard yet," I was like, "Okay,I'll rain back from that kind of thing."But, you know, the cat's out of the bag.
So it went in the newsletter, and I gota really nice little spike intraffic. Nothing huge,like 300 and something people ratherthan 30 people yesterday. Um, butwhat was really encouraging was thenewsletter signups—something I justthought nobody was going to sign up for.It’s not particularly well optimized onthe site. I didn’t think it wasparticularly compelling, but out of the330-odd people that visited the siteyesterday, about I think 11 or 12 nowsigned up for the newsletter. Sothat's huge! I think that’s a conversionrate; I think that’s massive.
Sign of things to come or whether that'sjust— I don't know. I did sayonce that I don't know how this isgoing to pan out because the sitehas come about because of the idea thatI've had for years about some kind ofkids' activity directory. Then thetech that we built, I thought thosetwo married up really well to create adirectory of kids— you know, verysearchable, filterable, SEO-friendlydirectory. So I thought, right, that's howthe idea was born. But themore I think about it, the more I couldimagine this morphinginto something maybe slightly different.Like, the site is the site, andit's okay, but the actual, maybe realasset is the mailing list or the podcast,or the such and such, you know, or thesocial media accounts, or—I don'tknow what it's going to be and how, howparents and carers are going to want
to be contacted. Like, how, where thatinteraction is going to primarily takeplace, I don't know yet. But that's kindof what's exciting about these projects,isn't it? Is that you don't know; youdon't know what's going to happen tothem. You've got this idea, but actuallySometimes, they turn out being, well, notcompletely different, but they go down adifferent path that you didn’t thinkabout. And it’s quite exciting. Yeah,it’s quite cool that. I just want to comeback on Ross’ comment. Thank you, Ross,for putting this in. He said it’s justabout feedback. He says, "My rule is notto give unsolicited feedback on thingslike this, but you solicited it, so yougot it." I think that’s a really goodidea. Like, if you don’t just contactpeople and say, "Your website’spants. It doesn’t do X, Y, and Z." Um,but if you ask for it, go for it.
Literally, you know, give them thefeedback. So, thank you for that, Ross.Yeah, Ross was, uh, Rosswas great. He, um, he really helped meout. So, that was fun. I’m going to just put in theYouTube comments a link to the littleblog post I did about the feedback form,so that if anybody wants to book acall with me, just to talkthrough the site, how they use it, whatthey think, then there’s the opportunityto do that. So yeah, it’s a great, greatweek. Um, it’s obviously still going veryslowly in terms of traffic.
Minimal and stuff like that, butthere it feels like it has a little bitof natural momentum. There’s enoughpeople that are beinglike, "Yeah, this is cool. This isreally good." It's a very in-topic,isn't it? At the moment, I think youhear it in the news about, you know,kids not having smartphones till theyare older. Yeah. So, it feels like now'sthe time. If it's going to happen, it’snow's the time. So, yeah. Yeah. So,that was a good portionof my week, and it's been reallyvery satisfying thisweek. So, yeah. Good. Good. Yeah. Right.
What is the next item on the list? Well,there are a couple of things. Um, positionsticky. I just added thisto the list this week becauseit was an interesting little challenge Ihad. So, um, was this in the blockeditor or was this for a client? This isfor a client actually. This is for aclient, wasn't it? I think. Yeah. Imean, was this? Yeah, I'll think for aclient. So, this is for a client, and Ithey wanted me to improve justthe general layout and style of a couplepages on the website.
It's built in the block editor. Um, so Iwas just laying things out and Iwas like, "I'd really like to have asticky sidebar, um, linksnav. Yeah, like on-page nav. Um, so Iadded a group, added columns, and added agroup to the column, made it sticky,like position sticky, and it didn'twork. Position sticky in the editor.There's a box, isn't there? Yeah. Yeah.And I looked at the front end, and it'slike, it's not sticking. I like, is thecolumn the right height? Yeah, thecolumn's the right height. Everything wasright. And weirdly, it worked in theeditor. I was just like, so it wassticky in the editor and not in thefront end.
I was like, "Something weird's going onhere." So anyway, I was googlingaround, stack overflowing, and probablychat GPT-ing and all sorts. And then Icame across this thing, uh, overflow.Where isit? Yeah, overflow clip. So I had anelement above thesticky group that had set overflow tohidden. I think I'd put it on like, Idon't know, was it like entry content? Itwas, or like a block wrapper div orSomething like that. Whatever wrappingyour blocks in, whatever I’m wrapping allthe blocks in, and that wasn’t in theeditor.
Yeah, for whatever reason. Uh, so I’d setthat to overflow: hidden for some reason.I can’t remember exactly why, becausesometimes things break outside wheneveryou’re setting images and stuff. So youcould break outside the container, Ithink you said. Yeah. So I was like,well, how am I going to solve this? Sothere's this property that I didn’t knowcalled overflow: clip. And I don’tfully understand the difference betweenclip and hidden, but it effectively doesthe same thing, but fixes issues likethis. So there you go. Um, I set overflow
clip on it, and it works. Uh, so isoverflow: clip a universal thing or is itonly in specific browsers? It’s universal,but it’s fully supported in modernbrowsers, right? I think it had like 96%coverage. Uh, and I’ve just done it. So,I’ve set overflow to hidden, thenoverflow to clip. Um, so that if clipdoesn’t work, hidden will work, and it’llit just won’t stick like it doesn’t, itdoesn’t break. It’s just like, yeah.Progressive, progressive makes it better.
But it doesn't kill it, if that makessense. Yeah, yeah, yeah. Exams has justsaid there. Yeah. Overflow clip isuseful, but it isn't supported on oldversions of iOS. Yeah, old versions ofiOS are a pain in the backside, aren'tthey these days. Um, which, yeah, we'vecome across it a good few times now. Um,yeah, so just just a little tipif anyone's struggling with, yeah,with that stuff, sticky positioning. Butthat was that. And then we had a bitmore of a debate, Mark, on async andbackground processes.
We did. And are we do we have anyfurther understanding on the difference?Uh, I do now. Yes. And thanks to Rossfor jumping in, as he does with hisexcellent explanations of things. Um, Iactually just need to find theexplanations. Uh, here we go. So I was soin the, I don't know what to call it, thedelicious brains script thing that I wasusing, the WP background processing. It offerstwo options for creatinga background process. I guess it'scalling it, and that's an async requestor a background process. And I justcouldn't quite understand the differencebetween the two. Um, and I actually hadA lot of people jump in and answer.
I just thought Ross, as usual, wasreally clear in his answers to what itwas. So, he says, "An async request is aone-off job that you want to runimmediately." So, it happens straightaway, but it doesn't stop anything elsefrom happening at the same time. Yeah.
And a good example of that is let's saywe send a job and it fails. We needto send an email to say that it'sfailed. But we don't, that doesn'tneed to stop the next thing happening,if that makes sense. Whatever happensnext, it can go now orin 10 seconds, or in 5 seconds, or in 30seconds, but it doesn't need to stop thenext thing from happening. So that'swhat an async request is. It's good fordoing those one-off tasks that you wantto run straight away, but you don't wantto stop the flow of the next thing inyour script running.
And then there are obviously background tasks, or theycall them background processes, should Isay, is a queue of jobs that runs inorder. So you know, task one happens,task two doesn't happen. I say task two,it's the wrong thing. The second thing inthe queue doesn't happen until the firstThings are finished and so on like that. Sothat's good for sendingjobs. So put jobs in a queue and we'lldo one, and then we'll do two, and thenwe'll do three, and more can be added tothe bottom of the queue as we're doingthem. That kind of makes sense. SoI think I understand that much betternow. Um, and I can start to think about
what I might use async requests for. Forexample, sending the emails for logs,which I don't think I've got implementedyet, but that makes more sense. So, Ithink what I've got is a goodstart, and I've already talked aboutsome enhancements I can make to, youknow, only sending jobs that haven'tbeen updated, and then there are moreenhancements I can do with stuff likethis. So, I think it's a work inprogress still. What I've got works, butI can make it much better with thestuff that I'm learning all the time.
So, it's good.Yeah, good stuff. I think Iunderstand a little bit betternow as well. I still don't understandgeneral computer science, so I stilldon't really understand what limitsthe number of processes that can happen.
Simultaneously, for example, on a serveror in a browser, you know, I kind of get thatstuff, but I don't quite understand it. Soyeah, I think if I understood thescience behind computing, all this would make way more sense tome. But unfortunately, I don't have thatknowledge. Someone with way moreknowledge than me will be able to answerthat question. But I think, from myminimal understanding, one of thedifferences between PHP andJavaScript is that PHP runs in order, andthe next thing doesn’t run until thefirst thing’s finished, if that makessense. So if you’ve got something that’ssending a request to a URL, it’s goingto wait for the result of that URLbefore it carries on to step two in yourPHP code. Yeah. Whereas JavaScript kindof just runs, boom, finished. So it neverwaits for the result of something. Ithink that’s how it works. Again,someone can correct me, but I thinkthat’s more about language than it is hardwareor computer processing. I don’t know.
It’s probably very complicated andprobably something we shouldn’t bediscussing now.I completely agree. Um, a few moreComments here. Uh, BP, sticky on agroup and not a column. Yeah, I didit on the group. Uh, yeah, the columnwon't work because it will be the fullheight of the column's block. So it willnever have anywhere to kind of move. SoI definitely did it on a group withina column block. Um, yeah, that's avery good point. And he also says, if youhave a div that is not closed, itcould be that. Yeah, interesting. Ishouldn't have that because I'm usingthe block editor and everything shouldbe closed nicely, but that is true. Um,Ross just says here, async kind of skipsthe queue because you want it to happenimmediately. Yeah, that's right. Um, Sam, hi, Sam.
Sam says, "We've had an issue where a secondbackground job starts before the firsthas finished, especially with a largedata set, e.g., the cron runs again beforeit's finished processing the queue."Does that make sense to you? Is thatsomething that might happen to us?No, but I've not seen that in mytesting.Um, so I don’t know the answer. I’ve notseen that in my testing.
Like 2,000 jobs in it and I posted thoseto the site, and then obviously it startsto process those jobs and put them inthe queue. Then I saw the queuestarted to execute, so I was justlogging stuff to see in a log file, youknow, bang bang bang, it's working, andthen I could send another 2,000 jobs, andthey would have— that’s a differentXML, so it would have like different jobtitles and things. So, I’m loggingdifferent things, and they wouldn’t startprocessing until that first 2,000 havebeen finished. Mhm, which kind of iswhat I want. So, yeah, you’re addingit to a singular queue. Yeah. And itprocesses that first batch first, andthen it runs onto the next batch thatyou’ve added. And then I tried it again,
you know, likesend straight away, send straight awayagain, and it still just added them allto the queue in the right order. So,yeah. Um, I mean, it doesn't really matterto me. I suppose it does in that ifyou’re a customer, you want yours postedfirst if you’ve posted it first, butthere it doesn’t really matter.Yeah. Okay. Um, and then Sam also says,“Worth throwing out there as this canCause multiple jobs can build up overtime and start to consume moreresources." Okay, interesting. Rothscounters with Sam. I'm not sureif execution order is guaranteed. I'llcheck that out. And then he says, "Ah, no.
Cues work on a first in, first out basis.That's what I thought. I wonder what'sgoing on. So that's what you justdescribed, Mark, the first in, first outbasis. So he’s—so Sam, just out ofinterest, are you using the deliciousbrain script? That would be interestingto know if that's the script you'reusing. Um, oh, FYI, I'm not using thedelicious brains. Um, so yeah, there isa WooCommerce one that someonementioned last week, which is apparentlyvery popular and worth looking at,but we’re not using that one. Um, also just want to mention Ree,thank you, Ree. Hi there. I have a degreein computer science and I'm stillbaffled by it. Yeah, well, I have verylittle in terms of computing. I have ahalf an A level in IT which was back inthe mid-90s, so it was completelyirrelevant. Um, yeah, that's it.
That's all I have. I've got nothing.Uh, by the way, Ree, hello. And yeah,Like I said, I loved your game. So, Ree has just built a little game calledGone Fishing. Um, and it's just, it'sso, I'm so impressed by something. Iwouldn't even know where to start. Um, Idon't even know really how to describeit. Um, it's like it presumably hassomething to do with fishing. Fishing asin not fusion, fishing. Um, yeah. So,it's a you kind of place counters on aboard. And there's a game like this thatI've played before where it kind of youbuild up counters and then once you kindof, they kind of expand once you kindof get to a certain number. There's agame on my phone that I've played withmy daughter that's like that, butRee's version is really fun. Uh, andyou kind of play it against thecomputer. Um, I'm yet to understand the strategy behind it. Ijust tried to fill the board as much aspossible, and then, um, it was a very tenseending though. Me versus the yellow AIgot close. He nearly wiped me outand then I made a stunning comeback. Soit's a fun little game. You shouldcheck it out. Throw the link. Iwas going to say throw the link up, Ree,because I've not seen it.
Yeah, throw the link in thecomments, and people can play.It's just great. I'm just soimpressed by stuff like that. I knowhe's had a lot of fun. Yeah.Um, Ross just mentioned as well WooCommerce's equivalent to the backgroundprocessing is called action scheduler.Um, I did look atthat, but after I found the backgroundprocessing one, I kind of worked onthat. So, I think it does a few morethings than when I read it, like it doeslogging and things for you withouthaving to do things. I don't know. Havea look at it. Anyway, I think a lot of
people do use it, so it's perhaps worthlooking at as well. Yeah. Cool. Uh,and just a quick hello to Nick, who's alsoin the comments. Hello, Nick. Um, so thenext topic was the block API versionthree thing. So, yeah, a little bit ofbackground to this. It's probably notmassively exciting, but it might berelevant to some people. Um, we built asitefairly early on in the days of theblock editor, wasn't it? It was 21, Ithink. Yeah. So, that's pretty earlywhen it was sort of being built.
Um, so we decided to go with the blockeditor. That was a veryconscious decision at that point. I'mglad we did. But the site is nowobviously four years old, and we've usedsome of our own actual native blocks on thatsite. I think the majority of the blocksthat we built, custom blocks that webuilt for that project were using ACF. Ithink they're all ACF to be honest.There might all be XF, and obviouslywe've got a bunch of other plugins onthere as well. Um, so Bobwasn't around back then to help us build.Bob wasn't around, but also, like thingshave moved on. So even things as simpleas the API version for theme.json,you know, I don't think ourtheme.json even had a version becauseversions for theme.json didn't exist, um,back then. So, it was on a differentkind of schema.
Um, and essentially this problem has comearound because my front end styles, myfront end CSS is bleeding into the wholedashboard, uh, like the whole editor. So Ihad, for example, styles for lists thatwere kind of styling the mainThe dashboard sidebar is in a weird way. Ihave styles for field sets andcheckboxes and stuff that is bleedinginto everything. Um, the biggestworry was when we had the block andpost tabs on the right-hand side. Forsome reason, you know, if youclick on the block, the sidebarchanges to the block settings. And ifyou click on the post, it changes to thepost settings, and the titles of thosejust completely disappear, haven't they?
Yeah. Well, they were white because thelinks were white in certain circumstances. Ican't remember. Yeah, it was like, but itwas a button style or something likethat. Anyway, all of this isnow solved in WordPress because theblock editor is loaded in an iframe. Butfor that to happen, all of your pluginsneed to be on — not all of yourplugins, but all of your custom blocks needto be on API version three, and oursweren't because we were usingACF. Uh, and it turns out that this is areal headscratcher for ACF for eeven the team there. Um, you know,this is kind of a problem that isdifficult — or even impossible — to solve. Sothis is the only solution.
Is that you can set the version of the APIversion to three, but you have to turnoff the ability to switch betweenthe preview and edit mode in the blockeditor. So, effectively you have toset it to preview. Always preview, um, soall of the block settings then get movedto the sidebar, um, because they can'tload the scripts and things that theyneed in an iframe. So, you can do it,and we can update everythingand I think we are going to go down thatroute. Uh, but we do lose a bit of thekind of nice UI, uh, for those customblocks. There is another issue though,isn't there? In that the blocks webuilt with ACF are builtbefore ACF moved to the native registerblock function.
I’d have to look into exactly how itworks, but ACF blocks now can have ablock JSON file. Ours don’t. They don’thave a block JSON file. They useregister ACF block or something likethat as a legacy thing. So, I don’tknow if that means that we—I don’t knowhow easy it is to upgrade them from theold registration of block system in ACFto the new one. Um, I’m sure it would bea bit of a disaster if it has to be aNew blocks are obviously used across multiple sites on amulti-site network. So, um, let's hopethat that is the case, but I haven'tlooked into that yet. But just when we did that test, didn't we,on just my local site, I created a dead simple block. I justliterally copied it off the ACF on howto create a block and then we tried toget it to do what we said, like forcethe preview mode, which worked, but Ihad to set version three in theblock.json file because it doesn't tellyou to do that when you register one. Um,and I can't do that for the ones we'vegot because we don't have one.
Another example of my complete lack ofunderstanding is why they can't loadtheir own scripts within that iframe.Why isn't there, because presumablythere is some JavaScript running in thatiframe, and that JavaScript is beingloaded from somewhere. So why can'tthere be some hooks and things that,yeah, why can't they push their JavaScriptinto that iframe? I don't reallyunderstand that. That's a very goodquestion. I don't know. Yeah, maybethere are just, like you said, the hooks.
For that, it doesn't exist, and it's justcurrently impossible. But it seems likethat would bemaybe really good reasons to avoidthat kind of thing. But there'sobviously JavaScript running in thereand files being loaded. So,all this came about, didn't it?Because we want to update the editor asit's such a legacy thing.So, that's one of the big problems withit in that these styles arebleeding into the admin. Uh, and we'vekind of, I mean to be fair to the client,they've kind of put up with that for thelast, you know, 12 months at least,
haven't they? Um, and we we've said, youknow, it's always our intention to sortof try and fix that. Um, but other than that,we also want to addcontrols to the editor like padding,margin, border, and border radius becausethe client’s got some new designs thatwe want to build, and we sort of look atthose designs and think we couldactually build those in the editor if wehad the controls, but we don't. So we'dhave to then build something more custom,or with custom classes and things, and itjust becomes a pain.
I really want to update the editor aboutadding those things. We don't reallyknow what the knock-on effects are goingto be. Um, so it's a matter of justspending a little bit of time workingit out, and the result of that was, I think,from what you said, was look, we can addthe padding and the margin and stuff. That'sfairly straightforward. But the CSSbleeding into it has bigger effectsbecause we've got these custom blocksand things. So we need to do some morework in those. Exactly. We will attempt to dothat and, um, get back to you, I'm sure.
Nick has said, "I'm pretty certain Ihave migrated old ACF blocks to the newblock.json method without breakingexisting content." Well, that ispromising. Yes, I like it. Good. Yeah.Let's hope that works. Okay.Um, it might be really straightforwardbecause, like, the fieldsand the way you register the fields andthe field groups hasn't reallychanged, has it? So it's just a matter of howyou sort of tell ACF this is a blockand then tie those fields to theblock. So, yeah, maybe it's not ascomplicated as I think, but it's worth it.
Need to test it with one of the blocksand things and see how that goes. Sowe've saved the most thrillingtopic to the end of the show. It'syour new desk, Mark. It's notexactly thrilling.Um, just more information actuallybecause in 2020, I bought an IKEA Beampedsit-stand. You have the same one, don'tyou? I think I do. Yeah. I think I put acustom top on, though. I, yeah, I boughta different top for mine. Ijust got the legs. Yeah. Right. Oh,you're right. You did. Mine wasjust a wood-colored top. Anyway, itdoesn't matter. Um, so in 2020I got that, and then a few months agoyou'll have noticed. It wouldn'twork. I don't know why. It just Iunplugged it, replugged it in, checked
everything was plugged into thelittle transformer that sits underneathand it just wouldn't work. And then Ikind of just accepted that it was likeit's dead. So that was it. And then Iwas, I was yesterday, not yesterday,earlier this week, musthave been. And I just thought, I'm justgoing to jump on IKEA and see if youcan order like a new power unit. AndThey said they had them, but youcouldn't order them. Uh or you had tocontact customer services. So is therea chat I can jump on? So I jumped on thechat and it was actually a real person,which was useful. Um, I said thatthis has been broken. Can youtell me what the part number is?
Because someone else on the internet hadfound the right part number that Ineeded. Um, and he just said,"Uh no, we can't send you that. You'dhave to go into a store, and they may be able tosource one for you. Um,but he said, "Oh, it's under a 10-yearwarranty, as your desk is, so just go andpick another one off the catalog andwe'll send it to you." I was like, "Okay,that's fine." So, they don't do the oneI had, but he said, "You can just picksomething else and we'll deliverit to you." So, um, I picked what lookedlike the equivalent essentially. It'sactually a bit bare because it has memoryfunctions so you can remember yourtop level and your low level, and thenjust press a button and it'll gostraight to them. Work out how to set itup. The top one wasn't so bad for me becauseI always write to the top when I'm working.
I'm stood up. But the bottom one Iusually have a setting. I drew a pencilline on one of the legs, so I onlywent to drop it. But the memorieswere pretty good. Um, and then it wascheaper, so they said, "Oh, there’s 110 quidto refund as well." So I was like, "Fairenough." Um, that got delivered yesterday,and my son and I built it last night.Then I need to set it all up now andsort all the wires out and everything.
So that was a pain or will be a pain.Hence the reason why I’m sat in thekitchen right now, um, watching the birdsoutside. It’s quite nice. That should goon all kids, by the way, as an activity.Build some IKEA furniture with yourflat pack furniture. Yeah, mydaughter loves it. She’s like, "Yeah."Depends on what you get though, isn’t it?Some are really complicated. I mustadmit that was quite straightforward.IKEA are usually pretty good, actually, tobuild. Yeah, those are good.Yeah, some of the ones you get fromsome of the companies are like, "Who onearth wrote these instructions?" Like,this is ridiculous. Um, shocking. Anyway,there you go. But yeah, that was thatwas my evening yesterday evening.
Evening. This evening will be to get itall together. So you're going to beoperational,fully operational this evening back intodevelopment mode. Yeah. Well, it mighttake me all weekend to be fair, butwe'll start it this weekendcertainly. Ross, depends what happens.
So, I said about doingbuilding IKEA furniture with yourchildren. Ross said, "But don't takethem to IKEA." Why not?Well, I think it could probably go one of two ways. Either theylove it and they're running around andyou can't chase them, and it's juststressful that way, or they hate it andthey're complaining the whole time. So,I reckon, or it gets very expensive.Hence, don't take your kids to IKEA.
Yeah. Um, Paul just asked,"Are either of you going to work campEU?" No. No. That would be a no. Why arewe not going to work camp?When is it anyway? Is it next month? Itmust be coming up. Yeah, it'scoming up pretty soon. Started June,wasn't it? Yeah. Yeah. Yeah. Um, I don'tknow, Paul, to be honest. Well, youasked the question mark. Why are we not?
Um, it's a bit of a pain to get to, Ithink, for us when we looked at theAnd it’s quite expensive. It's quiteexpensive,but just, I think I would like to gojust for the hell of it, just, you know,for the fun of it. But Ican't make a business case. No.
For it, really. Uh, the mainbusiness case would be probably spendingsome time with you, Mark, and just doinga business trip, you know, just likeseeing each other. We don't need to goto Basel to do that, do we? So, we don'tYeah. Uh, so yeah. No, we're not going.
I've never been to Bcamp Europe. Uh, I hear very goodthings. Um, but yeah, it's just notreally my cup of tea. I don'tthink I'll be a fan of really largeconferences, though. No. With lots ofpeople milling about and lots of, I don'tknow. I don't think that would be mysort of fit. But I might be wrong untilI can't say until I've been, obviously,but yeah. Yeah. That's one ofmy reservations. You know,I always say if WorkCamp London evercomes back, like I'll be there in aflash. Oh, yeah. Definitely.
Just the right size for me. Um, Iprefer it to be smaller probably, butyeah. Yeah. But yeah, enjoy, Paul. Um, Iknow my friend Mark How's Me is going tobe there. Um, he'll probably, you know,he'd be good to chat to. He's a good guy.So save yourself. I'm sure there's lots in thechat going as well, so you can meet up witheach other. I'm sure there'll be loads ofgreat people there. Like, I always have a bitof FOMO when it's going on, I have to admit.
Um, but it's never broken through to actuallygoing. So,yeah. So, there you are. Well, I thinkwe should wrap it up there. Um, yep.Sounds like a plan. Thanks for joiningus today, folks. It's always great tohave you along. Uh, thanks for yourquestions and comments. Uh, please doconsider liking, subscribing, sharing,all the good stuff. Good. And, uh, yeah,see you possibly next week, although itis halfterm, so I don't know. So nextweek or the week after, if you'resubscribed, you won't miss it. So, seeyou soon. See you soon. Bye-bye. Bye., WP Café #121 | Position: Sticky; Fixed!, Highrise Digital, 01jw4jwgaxz7t6s7ygs1h58nsm.