Aurooba Makes https://aurooba.com/ WordPress Web Developer Thu, 01 Jan 2026 06:56:13 +0000 en-US hourly 1 https://wordpress.org/?v=6.8.3 https://aurooba.com/wp-content/uploads/2019/01/cropped-aurooba-ahmed-favicon-32x32.jpg Aurooba Makes https://aurooba.com/ 32 32 Year in Review: 2025 https://aurooba.com/year-in-review-2025/ https://aurooba.com/year-in-review-2025/#respond Thu, 01 Jan 2026 06:43:41 +0000 https://aurooba.com/?p=25645 Looking back at 2025.

The post Year in Review: 2025 appeared first on Aurooba Makes.

]]>
This year felt like reorientation. Not forward, not back, not up or down, just a slow, often uncomfortable pivot toward myself. If last year was about survival, this one was about remembering that I am allowed to have a life.

What I Made

I wrote more than I have in the last few years, not the most ever, just more than the recent past. Writing gave shape to the days and somewhere to store the thoughts that kept piling up. You could say, I wrote my way through postpartum.

  • 21 newsletters, primarily on motherhood/parenthood
  • 17 blog posts across two sites (aurooba.com and aurooba.blog, some other day I’ll get into why I created a new blog)
  • 9 Instagram reels
  • This review

Not everything I wrote made it online. A lot of it stayed in drafts or notebooks.

Where I Went

I left the city once: Vancouver for a short work trip.

That’s it.

We made a conscious decision to stay home this year, figuring out parenthood and routines and the sheer logistics of daily life. We thought no travel would reduce chaos. Instead, it drained us. The absence of change made everything feel heavier. We were wrong. We need movement. We need contrast. We’ll course-correct in 2026.

What I Read

I read 15 books.

  • The Desire Variable
  • Us Dark Few
  • The Passion Parameter
  • Here for the Cake
  • The Very Secret Society of Irregular Witches
  • The Bone Season
  • Us Deadly Few
  • Managing Humans
  • Our Lady of Alice Bhatti
  • Start with Why
  • Damn..not another love story
  • A Witch’s Guide to Magical Innkeeping
  • Hyperion
  • The Staff Engineer’s Path
  • The Almanack of Naval Ravikant

Some were pure escape. Some were anchors. All of them kept me company.

Work

I changed jobs twice this year. That alone could be the headline.

First, I closed the chapter on working at WP Engine. I’m grateful for what I learned there and for the friendships I still have from that chapter. Then, I found my way to XWP, a fantastic agency where I learned more about myself than I expected to. I worked with talented people, I made real friends, and I was reminded of what I enjoy building.

Near the end of the year, I landed at Jane, the first fully Canadian company I’ve ever worked at. It feels like the right place for this chapter. Not because I know exactly where it will lead, but because I’m allowing this role to be part of a life, not the whole thing.

Reflections

What I changed my mind about

That staying still is the responsible choice. That adulting means tolerating what doesn’t work. I accepted that changing things isn’t reckless; it’s responsible. It allows you to show up more whole for yourself and for the people who rely on you.

What created energy

Sleep. Because parenting a baby under one is a physical and emotional marathon, and rest changes everything.

Writing. Not on a schedule and not always for anyone else. Just often enough to notice the difference in how I thought and how I felt. It helped clear out the fog of postpartum and made room for direction to appear.

What drained energy

The lack of travel. Turns out our wellbeing is tied to leaving home sometimes. Staying still shrunk the world, and it shrunk us with it.

What I learned

If something isn’t working, change it. It’s not failure to pivot. It’s stewardship.

Looking Ahead: 2026

My word for 2026 is persist.

Not in the hustle sense. Not “grind harder,” “be better,” “do more.” Right now, I don’t want to build toward the next version of my life; I want to live this one well. When I sat down to think about next year, the question that kept surfacing wasn’t:

How can I improve next year?

It was:

How can I live well next year?

What if goals weren’t ladders but containers for the life I want to inhabit? What if goals were just tools to help me persist in what actually matters, instead of chasing the next version of my life?

2026 Goals

These are mediums of living well. Not metrics of achievement.

  1. Read 52 books
    Because stories make me more human.
  2. Write 52 blog posts / articles
    Because I think and heal through words.
  3. Clock 52 gym sessions
    Because I want to feel strong in my own body.
  4. Travel for leisure 4 times
    Because we need the world.
  5. Take a class with my kid
    Because parenthood is not just logistics; it’s presence.
  6. Do something social once a month
    Life is better when hang out with your friends more regularly.

This isn’t about routines or finding the perfect structure. I’m not chasing discipline for its own sake. I just want to keep returning to the things that help me feel like myself.

If 2025 was reorientation, then 2026 is about persistence, continuing what’s worth continuing, letting the rest fall away, and living like life is something I get to participate in, not manage.

Let’s roll.

The post Year in Review: 2025 appeared first on Aurooba Makes.

]]>
https://aurooba.com/year-in-review-2025/feed/ 0
asking for help; what’s working right now https://aurooba.com/asking-for-help-whats-working-right-now/ https://aurooba.com/asking-for-help-whats-working-right-now/#respond Thu, 10 Apr 2025 12:00:00 +0000 https://aurooba.com/?p=25640 this issue of the motherhood newsletter went out to subscribers on April 7th, 2025 The other day, it all got […]

The post asking for help; what’s working right now appeared first on Aurooba Makes.

]]>
this issue of the motherhood newsletter went out to subscribers on April 7th, 2025

The other day, it all got to be too much. The baby needed us constantly. No breaks, no quiet stretches, no playing on his own—just full-on engagement, all day. I found myself watching the mess in the house pile up, needing to clean so I could feel like I could breathe. But there was no space for that. No room to reset.

So I called my mom.

She came over, like she always does when I ask. She held him, soothed him, played with him. But every time he got fussy, I felt this guilt rise up in my chest—like I should take him back, like it was my job to comfort him, even though she was already handling it with so much love and care.

Eventually, I did let her take over. I cleaned the house. I put things back in place, she helped me when the baby went down for a nap. And once our physical space was calm(er), I felt more like myself again.

You’d think I’d be better at asking for help by now. But I’m realizing that asking for help is a skill and it somehow applies differently in different parts of our lives. It’s not just about saying yes when someone offers, even. It’s about allowing yourself to need something, to receive it, and to believe you’re still a good or capable person/parent because you needed it, not in spite of it.

what’s working right now

Safe co-sleeping. We safely co-sleep whenever the baby doesn’t want to settle in his bassinet, and it’s made such a difference. Everyone sleeps longer and better, which makes the rest of it feel more doable. It’s all hard enough as it is, you know. And being rested doesn’t fix everything, but it does softens the edges a bit.

Days off for each other. Every other week, we each get a full day off: no childcare duties, just space to rest, wander, or do whatever we want. The other person takes on the full load for the day. It’s not always smooth, but it’s a way of showing up for each other as people, not just co-parents. And ultimately it helps us be better partners to each other and better parents to our kid.

Get issues straight in your inbox on the day they are published by subscribing below.

The post asking for help; what’s working right now appeared first on Aurooba Makes.

]]>
https://aurooba.com/asking-for-help-whats-working-right-now/feed/ 0
same story, different pages https://aurooba.com/same-story-different-pages/ https://aurooba.com/same-story-different-pages/#respond Sat, 05 Apr 2025 00:20:09 +0000 https://aurooba.com/?p=25638 this issue of the motherhood newsletter went out to subscribers on March 31st, 2025 I’ve been thinking about how motherhood […]

The post same story, different pages appeared first on Aurooba Makes.

]]>
this issue of the motherhood newsletter went out to subscribers on March 31st, 2025

I’ve been thinking about how motherhood (but really parenthood) holds this quiet paradox—how it can feel so universal, and yet so uniquely yours. We all carry similar rhythms: the feeding, the soothing, the wondering if we’re doing it right. But each of us is living a version no one else quite understands. A different page in the same story.

I’m 23 weeks into this adventure as a parent. Some days, it feels like I’ve got it—like I know the rhythms, like everything is in sync. And then there are nights where my kid’s sleep falls apart, and I’m back to feeling like I know nothing at all.

This space is where I’ll be writing from that middle place. The in-betweens: between naps and meetings, between who I was and who I’m becoming, literally before my own eyes.

I hope these notes feel like…a shared breath, or the kind of message you’d get from a friend who just knows.

I’m not sure yet what format the notes will take, perhaps they’ll mostly be like today’s: a few thoughts that have lingered in my mind, now finding shape through the act of writing them down and sending them to a few friends (you!) who subscribed.

the push and pull of returning to work

Ever since I’ve gone back to work, I’ve been noticing how hard it is to give my full attention to work—even when my kid isn’t around. My office will be quiet, the to-do list will be waiting, and still, my mind will drift: Is my kid okay? What’s he doing right now? It’s not worry, exactly. Just a gentle mental tether I can’t quite put down. And all of this despite the fact that he’s just upstairs with his dad, or in the next room with his grandmother.

At the same time, it’s such a relief to have a section of the day that’s kid-free. A few uninterrupted hours where I’m not needed. I’m trying to let that be okay too, to enjoy the space without guilt, even when a part of me is still tracing the outline of his day from afar. I’m not quite there yet, but I’m learning.

this week’s unsung hero: the robot vacuum

I bought it for my floors, but turns out, it’s pulling double duty as a baby whisperer. Something about the steady hum and the way it moves seems to calm my kid down when he’s particularly fussy and we can’t figure out what’s wrong. It even helps him drift off to sleep, sometimes.

It’s not the serene sound machine moment I imagined, but honestly? I’ll take it. Clean floors, quiet baby, no hands required.


I started out thinking being a “present” parent meant showing up with full clarity, full energy, full intention. But lately I’m realizing it’s okay to show up as I am: sometimes foggy, trying to be curious, kind of tired, and always trying (at least a little bit).

There’s so much noise about doing things right, but most days, the win is just staying soft. Staying open. Holding space for the messiness without needing to fix it right away. Holding space for experimentation, as my kid figures out who he is, and I do too.

This job of being a parent is just so different from my other work. The success metrics are nothing alike. There are no performance reviews, no tidy milestones—just a quiet, ongoing becoming.

This season asks for a lot, more than it appears to, emotionally, mentally, and physically. But perhaps presence isn’t a perfect performance, honestly it’d be pretty unsustainable if it had to be–it’s just returning, over and over, to what matters.

Get issues straight in your inbox on the day they are published by subscribing below.

The post same story, different pages appeared first on Aurooba Makes.

]]>
https://aurooba.com/same-story-different-pages/feed/ 0
Year in review: 2024 https://aurooba.com/year-in-review-2024/ https://aurooba.com/year-in-review-2024/#comments Tue, 11 Mar 2025 22:24:50 +0000 https://aurooba.com/?p=25633 A look back at 2024: creating, parenting, and everything in between. From publishing 100 podcast episodes to navigating pregnancy, birth, and postpartum, this year was transformative. As 2025 unfolds, the focus is simple: create and thrive.

The post Year in review: 2024 appeared first on Aurooba Makes.

]]>
A lot happened in 2024, but the most impactful thing? I started 3D printing a human, as I like to call it. From getting pregnant in January to giving birth in mid-fall, and going from zero to full parent—everything else feels small in comparison. But let’s go through it anyway.

Content

While I poured some energy into creating and sharing content, other areas of my life took a backseat—sometimes by choice, sometimes out of necessity. Let’s talk about the rest.

Open Source

I didn’t update any of my plugins or repositories—a major miss. But honestly? Pregnancy took everything I had, and I had to let something go. This was it.

Travel

  1. Canadian Maritimes for our babymoon: Nova Scotia, Prince Edward Island
  2. Ottawa for WordCamp Canada
  3. British Columbia for a family camping trip

Reading

It was a pretty sparse reading year. I read 9 books and some of them were books I’ve read before, but one of them was a hot off the press release that I inhaled: Wind and Truth, and I’m pretty sure it should count as 3 books1 !

The Books I Read in 2024
  1. Slow Productivity by Cal Newport
  2. The Borrowers by Mary Norton
  3. A Court of Mist and Fury by Sarah J.Maas
  4. A Court of Winds and Ruin by Sarah J.Maas
  5. A Court of Frost and Starlight by Sarah J.Maas
  6. A Court of Silver Flames by Sarah J.Maas
  7. Anne of Windy Poplars by L.M. Montgomery
  8. Wind and Truth by Brandon Sanderson

Pregnancy, Birth, Postpartum, & Parenthood

I kept the pregnancy pretty private. Most people outside my immediate family and closest friends didn’t even know until I was pretty far along. I found myself turning inward—partly because I just didn’t have the energy. Every ounce of it went toward surviving: doing my job, eating, sleeping, keeping in touch with family. I almost backed out of my WordCamp Canada talk because I wasn’t sure I’d be in any shape to do it well. But I went, and I’m so glad I did.

I hated pregnancy. Not a fan. Mine was fairly normal albeit filled with scares and paranoia.

Birth was painful but awe-inspiring. I have never felt more powerful in my life. I learned more about myself in those 12 hours than I did in the last five years.

Postpartum was a rollercoaster. Even with so much family and support around me, I have never felt lonelier or more despairing than I did in those first eight weeks. I started every day feeling like myself and ended it feeling hollower than a husk. Going from zero to full parent is an intense shock—to your system, your relationships, your entire life.

I didn’t feel like a parent until about four months in. While I absolutely felt that deep, biological connection—the kind that had my protective instincts running at 700% all day, every day, making me want to fix anything that caused my kid pain—I didn’t love my kid, not really, until around three months in. But then the love came. The tiredness slowly started to fade. My body began its slow, halting healing process. And one day, I woke up, and I just was a parent.

Pregnancy, birth, postpartum, parenthood—this whole experience forces you to evolve fast. I’m undoubtedly changed by it. And while it’s been difficult, it’s been an incredibly worthwhile evolution.

Lessons from 2024

  • You can’t do it all, and that’s okay. Prioritization became second nature this year, I was forced into it by my pregnancy.
  • Consistency pays off. Publishing 100 podcast episodes felt like shouting into the void at times, but it built a lot of confidence.
  • Evolution isn’t always visible in the moment. Pregnancy, birth, and postpartum changed me in ways I couldn’t see until I looked back. Growth often feels like survival in the moment.

Overall

It was a transformative year. The quantity of things I accomplished may not be high, and I definitely failed at or abruptly let go of some things—sometimes for the better, sometimes not. But the quality of what did happen was outstanding. I recorded 100 daily podcast episodes, created a whole human (one I’m pretty delighted with), and was humbled by the inner power I found in those final moments of giving birth.

2025

As I write this, we’re already nearly a quarter into 2025, and my life has already changed. I switched jobs, started renovating my home, and I’m excited to create this year.

No rigid professional goals this year, just one guiding principle: create.

In my personal life, the goal is just as clear: thrive. As a human, spouse, and parent.

2025 – let’s keep rolling.


  1. The book is 1330 pages, y’all ↩︎

The post Year in review: 2024 appeared first on Aurooba Makes.

]]>
https://aurooba.com/year-in-review-2024/feed/ 1
Introducing JS Essentials for WP Devs https://aurooba.com/introducing-js-essentials-for-wp-devs/ https://aurooba.com/introducing-js-essentials-for-wp-devs/#comments Fri, 23 Feb 2024 14:30:00 +0000 https://aurooba.com/?p=25622 Introducing my latest course, teaching JavaScript essentials for WordPress devs.

The post Introducing JS Essentials for WP Devs appeared first on Aurooba Makes.

]]>
For the complete course outline, check out the official sign up page. The first lesson drops on on March 4, 2024. Or read on for the full story.

WordPress is becoming increasingly JavaScript heavy, first with the editor and now slowly the entire Admin being transformed with JavaScript, and while PHP will still remain the backbone of WordPress for a long time to come, there will soon come a time when most modern WordPress development will require knowing and using JavaScript. For a lot of us, that time is already here.

So I’ve been thinking about creating a JavaScript crash course for at least 6 months. And I finally sat down and created it.

You could go out there and grab a complete course on JavaScript that takes you through everything, but if you’re anything like me, you can figure a lot of it out and just need a primer on some of the more important things that will help you get up and running quickly.

You know PHP and you know how to program. You’re smart, capable, and you inherently understand WordPress. You just need a bit of a leg up in some of the JavaScript specific syntax and ways of thinking so you can dive into JS/React/Next.js quickly.

So the brief is simple:

15 bite sized lessons delivered daily to help you absorb JavaScript essentials. So you can go from zero to JS development as quickly as possible.

We’ll cover things like:

  • the difference between var and let,
  • arrow functions,
  • what the heck destructuring is,
  • how to map over an array in JavaScript,
  • how async/await really work, and
  • why those three dots are sometimes called the spread operator and sometimes called the rest operator, can’t JS devs just pick a name?

Basically, if there was something I found myself explaining again and again, I put it in this course. The reality is, lots of people are going to jump straight from PHP into React (hey, I did it too), and there is plenty of React specific syntax and paradigms to understand too, however, a lot of it becomes easier when you recognize that a lot of the conventions in React are actually just pure JavaScript things, and not specific to React at all.

I can’t tell you how many people think destructuring is specific to React, when in fact, it’s vanilla JavaScript functionality. I get it though – once upon a time, I made that mistake too. Destructuring is an easy example, because React uses it a lot, and once you understand how it really works, you start to feel a lot more empowered.

The course is completely free. In our WordPress community, some of this knowledge is becoming more and more essential and it doesn’t belong behind a pay wall.

For the complete course outline, check out the official sign up page. The first lesson drops on on March 4, 2024.

The post Introducing JS Essentials for WP Devs appeared first on Aurooba Makes.

]]>
https://aurooba.com/introducing-js-essentials-for-wp-devs/feed/ 4
Year in review: 2023 https://aurooba.com/year-in-review-2023/ Sat, 30 Dec 2023 20:32:48 +0000 https://aurooba.com/?p=25611 Looking back at 2023 and looking ahead a bit to 2024.

The post Year in review: 2023 appeared first on Aurooba Makes.

]]>
It’s been something of a year. Let’s start with some statistics.

Content

I published 153 pieces of content this year between all my different endeavours, which includes over 25 hours of audio/video content – a first for me.

Open Source

I maintained and updated 5 open source projects and I contributed to two major WordPress releases this year, 6.3 and 6.4.

Travel

I went on 6 trips this year. Many of these trips were spontaneous, but nevertheless, good.

  1. Edmonton
  2. Toronto and Niagara Falls
  3. Los Angeles and area
  4. Jasper for the Dark Sky Festival
  5. Canmore
  6. Washington DC for a conference

Reading

I read 24 books. I tend to read in spurts, reading a lot, then not reading much, then reading a lot again. Some of these books took me an entire year to finish, and some I read in a single sitting. I read all kinds of things – from light (and spicy) romance to epic fantasies to books on management. ‘Twas a delight.

I also reread The Stormlight Archive series and The Protector of the Small quartet again. I read these two series habitually1, so they aren’t included in my official count.

The Books I Read in 2023
  1. The Golden Mean
  2. The Obstacle is the way
  3. Four Thousand Weeks
  4. Be a Triangle
  5. Engineering Management for the rest of us
  6. Discipline is destiny
  7. On Writing (re-read)
  8. Hero of Ages
  9. The Well of Ascension
  10. Mistborn
  11. Elantris
  12. Fourth Wing
  13. The Stardust Thief
  14. Reign
  15. Rivals
  16. Majesty
  17. The Perfumist of Paris
  18. Grit
  19. The Startup Wife
  20. The Book Eaters
  21. The Atlas Six
  22. Iron Wing
  23. Resilient Management
  24. Feel Good Productivity

Reflection

“We do not learn from experience…we learn from reflecting on experience.”

John Dewey

It was quite the year.

What did I change my mind about?

Two things stand out to me:

When I first started The Daily 5 at the end of December 2022, I had intended for it to be a podcast that lasted all the way to the end of 2023. But I changed my mind about that in March 2023 and cut it short to ~100 episodes (in reality, 98 + a trailer). This was a good decision. The impact and benefits of those daily episodes are evident in my professional life everyday. But they were best as a season and not as a permanent ongoing thing.

I realized that I cannot do service/consulting work and do it as well as I want and try to push my career in the direction of education and products at the same time. I can if I’m willing to accept that I’ll either do them both poorly or do one of them very badly. So my own circumstances and perhaps my own inability to balance them well (right now) meant that I’ve changed my mind about how to approach them.

What did I learn this year?

I learned a lot this year, but two things stand out the most.

I learned the value of good boundaries, and the havoc that a lack of well defined professional boundaries can wreak on your mental and emotional well being. I won’t get into this too much, but I’ll say this much: you are first and foremost responsible for yourself. As they tell you on a plane, put your own oxygen mask on first – you cannot help others if you are not okay.

The other thing I learned this year was a lot more React. Like..a lot more. I learned that I have a good mind for it and I am able to see the power and value of JavaScript and client-side-heavy applications as well as server side applications using, say, PHP or something. Not everyone has an equivalent appreciation and talent for both styles of applications, but I seem to have a knack for both. Anyone who tells you one is unequivocally better than the other is either inexperienced or biased.

What didn’t go so well this year?

A few things.

All the progress I made towards getting healthier in 2022 was pretty much undone this year. That was not great. I’d like to do much better in 2024.

I let fear stall my progress on a few projects that were important to me. Not cool. And I didn’t build very much at all in public or for the public. I’d like to correct this in 2024.

I was very excited to do my talk at WordCamp US 2023, however, events conspired in such a way that I was just not prepared enough, and I don’t feel great about the quality of my delivery, even though the content was solid. I’d like to ensure I do better for future talks.

What did go well this year?

Despite not hitting all my content goals, I produced a fair bit of content, and more audio/visual content than I’ve ever produced before. The content was all over the place and not very focussed, but I learned a ton from creating it. Interestingly, accessibility has been a growing theme in my work.

The bulk of the work I’m proud of this year is not public. I worked really really hard this year and I learned a lot. I levelled up as a developer, mentor, content creator, and teacher. I’m proud of the impact I had on the professional lives of the people I worked closely with this year.

The world as of late

We’re living through a very tough humanitarian and political climate right now. A lot has been awful these past few years, but I’m not alone in having been horrified and deeply impacted by the ceaseless murderous (genocidal) and destructive rampage happening to the Palestinian people at the hands of the Israeli government, supported by many western powers. In the span of 90 days, more people I know have died (been murdered) than the combined total of people I knew who died during the rest of my life. For no other reason than their ethnicity and/or whereabouts.

It is difficult for me to describe the impact this has had on me, my life, my work, my everything. Difficult to describe how this has coloured my relationships, both professional and personal.

As Martin Luther King Jr. once said, “In the end, we will remember not the words of our enemies, but the silence of our friends.”

Overall

It’s been a tough year, but there was plenty of good in it too. If I had to sum up the goodness of 2023 in one word, I would choose exploration. 2023 was a year of exploring new job types, new communication mediums, new work partnerships, new technology, new topics. I am, however, ready to close the chapter on 2023 and look towards 2024.

Looking towards 2024

If 2023 was the year of exploration, then 2024 should probably be exploitation2. But also, I believe in journey before destination.

So 2024 will centre around two things:

  1. Systems – I need better systems in pretty much every arena right now, if I want to reach goals and more importantly, sustain my progress.
  2. Release – I created lots of stuff and flitted around plenty in 2023. It’s time to take all of that learning and actually create specific things, finish projects, release stuff.

I could say more, but I won’t. I’d rather go and do. 2024, let’s roll.


Footnotes

  1. Everyone has a few books that they read again and again, they are like a healing balm or nourishment or just the perfect getaway from life sometimes. These two series are some of those books for me. But also, Rose in Bloom, Trickster’s Queen, The Will of the Empress, Ender Quintet, Earth’s Children, Jane of Lantern Hill. ↩︎
  2. Based on the explore/exploit bandit problem Josh Kaufman talks about here. ↩︎

The post Year in review: 2023 appeared first on Aurooba Makes.

]]>
A basic ticker tape (marquee text) with just CSS https://aurooba.com/ticker-tape-marquee-css/ https://aurooba.com/ticker-tape-marquee-css/#respond Thu, 08 Jun 2023 20:04:14 +0000 https://aurooba.com/?p=25558 An easy to implement CSS only ticker tape or marquee text animation.

The post A basic ticker tape (marquee text) with just CSS appeared first on Aurooba Makes.

]]>
Ticker tapes, also known as marquee text, seems to be making a comeback. I’ve seen it on numerous sites and have built that feature into 3 sites just in the past month alone.

I’ve played around with a few different ways to do this, including at one point, writing custom code on top of Flickity when I had to do it for a row of images. But ultimately, this simple CSS implementation has worked the best and been the most flexible – at least for my uses anyway.

The marquee text element replacement we’re building

This is what we’re building. Yep, just a basic marquee text animation of the different parts of a sentence.

There’s of course, some simple styling to make it look presentable, but the part we’re going to focus on is the animation, structure, and settings we need in order to get that animation working well.

object complements subject verb predicate preposition adjective adverb clause conjunction implicit object complement postposition

Find the complete code and link to a codepen version at the bottom.

Elements of the Ticker Tape

Here is the semantic HTML code we’re working with:

<div class="ticker-tape-container">
  <div class="ticker-tape">
    <span>object complements</span>
    <span>subject</span>
    <span>verb</span>
    <span>predicate</span>
    <span>preposition</span>
    <span>adjective</span>
    <span>adverb</span>
    <span>clause</span>
    <span>conjunction</span>
    <span>implicit object complement</span>
    <span>postposition</span>
  </div>
  <div class="ticker-tape" aria-hidden="true">
    <span>object complements</span>
    <span>subject</span>
    <span>verb</span>
    <span>predicate</span>
    <span>preposition</span>
    <span>adjective</span>
    <span>adverb</span>
    <span>clause</span>
    <span>conjunction</span>
    <span>implicit object complement</span>
    <span>postposition</span>
  </div>
</div>

There are 3 basic parts to the ticker tape:

  1. The ticker tape container
  2. The ticker tape (or marquee text) itself
  3. The objects (or children) we want to display in the ticker tape

The container for our marquee text animation

The container’s job is to contain the scrolling elements and be the flex container for the ticker tape itself, so the ticker-tape related CSS we want on our container is actually just two lines:

.ticker-tape-container {
    overflow-x: hidden;
    display: flex;
}

The ticker tape (or marquee text)

The ticker tape element itself is where our actual animation is going to live. Before we animate it though, we need to ensure the objects inside the ticker tape that we want to animate are lined up correctly:

.ticker-tape {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    gap: 1rem;
}

So we use flexbox to centre the items vertically and keep them in a row, with a 1rem gap between each element. We also use the flex property to ensure that this ticker tape element stays centred and sized appropriately, and doesn’t grow taller or wider because of any of its inner elements.

The custom keyframes animation

Now that we have our items in a row, they don’t overflow the container, we need to actually animate them. For that, we’ll use the animation element, and create a custom animation with @keyframes. In my case, I needed the ticker tape to animate and move towards the right, so I’m translating the element from 0 to negative 100% – backwards:

@keyframes marquee {
    0% {
        transform: translateX(0%);
    }
    100% {
        transform: translateX(-100%);
    }
}

If we wanted to animate the element moving towards the left, we would reverse the animation, starting from negative 100% and arriving at the initial position of zero at the end:

@keyframes marquee {
    0% {
        transform: translateX(-100%);
    }
    100% {
        transform: translateX(0);
    }
}

Setting up the animation

Now that we have our animation, we have to apply it to our .ticker-tape element. I’ve broken it up by each animation property so it’s easier to understand what we’re applying:

.ticker-tape {
    animation-name: marquee;
    animation-duration: 60s;
    animation-timing-function: linear;
    animation-delay: 0s;
    animation-iteration-count: infinite;
    animation-play-state: running;
    animation-direction: normal;
}
  • So we are applying the animation we created, called marquee.
  • The duration is for 60s – you will want to play around with this, since it impacts the speed of the animation.
  • The animation is linear – you can play around with this, but I found linear is the simplest and works the best for this kind of..for lack of better word, linear animation.
  • There’s no delay, we want the animation to start as soon as the page loads.
  • The iteration count is infinite, because we want the animation to be continuous.
  • We want the animation state to be constantly running (this is a fun one, for example, you could have the animation play state pause on hover)
  • We want the direction to be the regular left to right, but of course, you could change this.

Eliminating gaps and making it feel continuous

Now, if you examine the code of the example, you’ll notice that I actually have two ticker tape elements in there, with the same ticker tape objects. If you have only one, at some point you reach the end, and the animation waits till it’s essentially completely out of view, before starting again from the left.

To eliminate that problem, we stack two ticker tapes, so that when one ends, the next one is ready to go and fill the gap, until the animation for the first ticker tape restarts. As a rule of thumb, have two ticker tapes, but depending on your situation, you may need more.

It is a little bit repetitive, which is why for accessibility reasons, we add aria-hidden="true" to the second .ticker-tape element, to eliminate the repetition for assistive devices.

Ticker tape objects

Now we have the elements which will actually be animated. In the case of our example, these are just words wrapped in span elements, but you can have anything in here really. There’s not much to it, style them as you like, but the actual animation is handled by the elements higher up in the hierarchy.

The complete code

Here’s the complete CSS code to make the example exactly as it looks, and comes with CSS Properties to make it easy to control the different values of the animation as well:

.ticker-tape-container {
  overflow-x: hidden;
  max-width: 700px;
  width: 100%;
  display: flex;
}

.ticker-tape {
  --direction: normal;
  --duration: 60s;
  --delay: 0s;
  --iteration-count: infinite;
  display: flex;
  gap: 1rem;
  flex: 0 0 auto;
  margin-right: 1rem;
  min-width: 100%;
  align-items: center;
  animation: marquee var(--duration) linear var(--delay) var(--iteration-count);
  animation-play-state: var(--play);
  animation-delay: var(--delay);
  animation-direction: var(--direction);
}

@keyframes scrmarqueeoll {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-100%);
  }
}

/* This is just some styling to make it look presentable */

.basic-styling {
  border-radius: 10px;
  background-color: lightblue;
  padding: 2rem;
  color: #010101;
  font-size: 1.5rem;
  font-family: sans-serif;
}

.basic-styling span {
  padding: 0.25rem 1rem;
  border-radius: 10px;
  border: 2px dashed #5fb3ce;
  background-color: #86c5da;
}

And here’s the HTML code again, for the sake of completeness along with the additional styling classes:

<div class="basic-styling ticker-tape-container">
  <div class="ticker-tape">
    <span>object complements</span>
    <span>subject</span>
    <span>verb</span>
    <span>predicate</span>
    <span>preposition</span>
    <span>adjective</span>
    <span>adverb</span>
    <span>clause</span>
    <span>conjunction</span>
    <span>implicit object complement</span>
    <span>postposition</span>
  </div>
  <div class="ticker-tape" aria-hidden="true">
    <span>object complements</span>
    <span>subject</span>
    <span>verb</span>
    <span>predicate</span>
    <span>preposition</span>
    <span>adjective</span>
    <span>adverb</span>
    <span>clause</span>
    <span>conjunction</span>
    <span>implicit object complement</span>
    <span>postposition</span>
  </div>
</div>

And if you want, you can play around with this example in CodePen.

If you liked this article, you’ll enjoy my biweekly newsletter on modern development.

Get an original essay or tutorial in your inbox every other Tuesday.

The post A basic ticker tape (marquee text) with just CSS appeared first on Aurooba Makes.

]]>
https://aurooba.com/ticker-tape-marquee-css/feed/ 0
On being an open source contributor https://aurooba.com/on-being-an-open-source-contributor/ https://aurooba.com/on-being-an-open-source-contributor/#respond Wed, 31 May 2023 10:00:00 +0000 https://aurooba.com/?p=25551 Some thoughts on what it means to contribute in an open source community.

The post On being an open source contributor appeared first on Aurooba Makes.

]]>
This article first appeared in my newsletter, Tuesday Letters. Sign up here.

There are a lot of ways to contribute to the world of open source. Since the community around WordPress is the one I primarily hang out in, I’m going to centre my thoughts around WordPress, although I think these thoughts are applicable in any open source community around the web.

I’ve been noticing a new-ish assumption around what open source contribution means, lately. Both in my own thoughts and also in what I see being echoed around the web – that to be considered an open source contributor you have to officially and tangentially have created something directly connected to the core open source project.

For example, this may mean a code contribution that gets merged into WordPress Core or a piece of writing that made its way into the official press/communication/blog hosted on the main website of the open source project.

I see people dismissing the opinions and thoughts of people who they don’t consider contributors, or people who don’t have enough commits, badges, or props directly inside the core WordPress project, which is certainly one of the easiest ways to identify an open source contributor.

The Rubric

Of course, I completely get that in a community as large and varied as WordPress, we cannot listen to every single person and give every piece of feedback equal weight. We have to have some kind of rubric or system to sift and filter through all the messages, feedback, comments, and reviews to find the ones that are worth giving attention to – that are valuable. And so in doing so, we’re often considering, “Has this person earned the right to have their opinion matter by way of making real contributions to the project?” And if the answer is no, their opinion is discounted, dismissed, or devalued.

However, the open source community is much much larger than that. What makes open source projects so powerful and so valuable is all the open source and free work that surrounds the project. The thought pieces on people’s blogs, the tutorials on people’s websites and YouTube channels, the ongoing conversations on social media, the offline friendships and groups that form, etc.

I have known and learned from prolific WordPress tutorial authors who – for the longest time – never contributed anything to the WordPress project directly; not a line of code or an edit to a marketing page, nothing. And yet, their work propelled the growth of WordPress itself and empowered numerous people to build entire careers on top of WordPress, because of their tutorials and articles.

Earning my Core Contributor Badge

There was a time where I, myself, sought out legitimacy as a contributor by amassing those WordPress.org badges.

I first earned the “Core Contributor” badge because I helped write the “What’s New” page of a WordPress release – you know that page you see when you update WordPress and it showcases what’s new about that version? I fell into that Marketing Team meeting accidentally and helped out because I just happened to be there.

The context here is, most people associate the Core Contributor badge with contributing code to the project, which still to this day is considered the highest form of contribution to an open source software project (and a topic to tackle for another day). Imagine the imposter syndrome I felt when people were impressed that I had that badge.

It was only later that I contributed code to the project and finally stopped feeling like a fraud for having that badge.

The badges on those WordPress.org profiles are great and lots of fun to see when you contribute something very directly to the WordPress project. And those are fun little digital rewards for sure, but they don’t really tell you anything about someone’s current involvement in the project. Don’t think for a second that someone without badges can’t be an open source contributor. There are plenty of folks promoting WordPress out there, teaching it, and creating work with it, without ever having directly putting anything into the core project. Without those people, WordPress would never have grown to be as big as it has or become an engine that drives such a large part of the web.

I’m not saying I have an answer to this slightly troubling trend. We all do need a way to sift through all the comments, thoughts, tweets, and posts on the internet and decide what deserves our attention. I’m just saying, it’s maybe a bit troubling what we’ve unconsciously decided is the definition of a contributor – of someone who’s opinion matters – and maybe we need to examine our bias around it.

This article first appeared in my newsletter, Tuesday Letters. Sign up below.

The post On being an open source contributor appeared first on Aurooba Makes.

]]>
https://aurooba.com/on-being-an-open-source-contributor/feed/ 0
Building a mini course on Block Design in 24 hours https://aurooba.com/building-a-mini-course-on-block-design-in-24-hours/ https://aurooba.com/building-a-mini-course-on-block-design-in-24-hours/#respond Sun, 07 May 2023 02:27:07 +0000 https://aurooba.com/?p=25523 Click to go to the latest update. Over the years, I’ve watched a bunch of rad people create products in […]

The post Building a mini course on Block Design in 24 hours appeared first on Aurooba Makes.

]]>
Click to go to the latest update.

Over the years, I’ve watched a bunch of rad people create products in public. I’ve dabbled with building in public too, having built both Super List and QuickPost in public on Twitter last year. And this year, I’ve been attempting to finish and release a course that I half-announced last year, and it’s been a daunting process, in fact, despite multiple attempts, I’ve continued to procrastinate on it and push the release of it again and again, because it just feels so big.

So I was lying awake in bed unable to sleep a few days ago, and I thought..what if I built something small and did it in public and set a time limit on it Nathan Barry style? In fact, what if I just did it like Nathan Barry did all those years ago?

Taking a small detour

So that’s what I’m going to do. I’m going to take a break from the daunting task of the larger course that I seem to have set impossible standards for myself for, and make this little product that I’ve had in my mind for a few weeks. In order to make sure I actually finish it and do it, I’m giving myself..24 hours. Ideally, I would have started this at the top of the morning, but here we are at 8pm on a Saturday. But that’s alright. By 8pm tomorrow, this little product should be complete, released, and available for purchase.

And like I said, it’s going to be in public – I’ll post on social media too, but I’ll log my updates and stay accountable to myself (and to you) here in this post. Every couple hours, I’ll post an update with my progress and what’s going on. I have never put up a product for purchase before, so this is in some ways pretty nerve-wracking..and I don’t expect too much, but it’s an excellent first step.

So what’s the course?

I have a lot of conversations with other developers about how, with the advent of the Block Editor, we as developers can’t just care about the frontend, we have to now actively care about the administrative experience. I’ve been an advocate for thoughtful, well designed editing experience in the WordPress dashboard even before the Block Editor, but now with the visual editing experience, this matters even more.

So I’m going to take the conversations I find myself having repeatedly and distill it down into a mini course you should be able to complete from start to finish in one hour, that’ll give you a framework for how to plan out your WordPress block and the editing experience for it.

My spouse has these things called “lunch ‘n learns” at his office, where the team gathers with their lunch (or the company provides a lunch) and one of the team members or an outside expert teaches everyone something new while everyone eats lunch. So think of this as a Lunch N Learn on crafting a thoughtful block editing experience.

Right now

I’ve got some thoughts jotted down in my Notes app, from when I was lying awake in bed a few nights ago, but I haven’t actually started yet, because I wanted to get this little post out first. Right away, I know that:

  • it’ll be maybe 8 or 9 short videos
  • plus a planning template (based off the one that I think through things in myself)
  • $10 – $15 bucks at most, with two packages (again, very Nathan Barry inspired here)
  • the course will be delivered through a little WordPress website (of course!)

I have some ideas for a name, but nothing nailed down yet.

The very first thing I’m going to do is roughly plan out the videos and what they’ll each be about, and I’ll probably do it in FigJam, which I’ve recently been really enjoying.

Okay! It’s 8:24pm, I’m going to get this post live, post an announcement on social media, and then get cracking. And if you want to hear when the course becomes available for ordering, you can sign up for the mailing list at the bottom of this post. 🙂

First update will be up in a couple hours!

Tweet thread here.

Mastodon thread here.

May 6 – 9:45pm

Alright, so first of all, I decided to set up a new video template in Screenflow to be able to quickly record little updates. That took..a bit of tinkering – about 30 minutes or so. 😅 So anyway, you can watch the video update or just read.

I mapped out 9 lessons/videos for the course:

  1. The anatomy of the block editing interface
  2. Guidelines for naming your block clearly
  3. Choosing an icon for your block
  4. Deciding on the type of block
  5. Planning out the block properties
  6. how to plan out the editing interface
  7. Designing a good setup and default state 
  8. Designing a good editing state
  9. Designing a good preview state
  10. How to plan out the editing interface with the planning template

I didn’t want to use an existing block because most of those are for clients, so I’m thinking of buying a design template from Creative Market so I can walk through a real design and pick out a component to block-ify from there to work from.

That’s where I’m at. Now..back to work.

May 7 – 12:27 am

Alright! I have two lessons recorded and edited. When recording the first lesson, I had…5 false starts, but then I got into it and was able to knock it out. I’m doing very light editing for now, but we’ll see how I feel when I’ve recorded them all. The goal is to keep it all under an hour. It’s past midnight now, so I’m going to go to bed, but I’m pleased with my progress.

  • Lesson 1 came out to 4 minutes 28 seconds
  • Lesson 2 came out to 4 minutes 58 seconds

So I’m about 22% done with production..sort of. Not bad.

I ended up buying a pack of themes from Creative Market, and I’m using one of the designs as the example. I’m going to assess my rate of progress in the morning after a couple more lesson recordings. If I have time, I’ll actually code out a block from that design and include the source code as part of a second tier of the course and maybe a tenth video walking through it a bit. Maybe. We’ll see.

May 7 – 8:16 am

I woke up at 7am, and by 7:30 I was at my desk with some coffee. The first order of business was writing a newsletter and let my subscribers (who haven’t heard from me in over 14 months…) know that I was building a course and doing this thing! Since the newsletter has been so entirely inactive, I don’t expect to have any effect on anything, but I want to start sending out newsletter again, so why not just start now?

Okay, the now it’s time to record the next lesson. 🙂

May 7 – 11:10am

Okay! Lesson 3 is recorded and about a quarter of Lesson 4 is done too! I’m getting into the meat and potatoes of the course now, which means I’m writing some code as well, because I want to be able to demo the things I’m talking about. So that means..there’s definitely going to be a second tier of the course, I don’t want to make it too much more than the first tier, but there will definitely be a price bump since it’s going to come with source files for the block stuff I demo.

The code I’m writing now will carry over and be used in the demo for the next few lessons as well, so although it’s taking a bit longer to record Lesson 4 right now, that’s because of some upfront work, and then the other lessons will go faster.

I also decided to use the Stacks setup from the new community theme that was just released! It’s such a great idea and the nice thing is, you can create slide decks in the manner that theme demonstrates..in any theme that uses the Block Editor and supports the core Group block. I demo how I’m using it to make my work easier in the video update above if you want to check it out. 🙂

Alright. Back to work!

May 7 – 2:15pm

So.. I made a mistake in a block I created and had to redo an entire recording because of it, so that delayed me a little bit! BUT Lesson 4 is recorded and edited! And I have all the code I need in order to walk through Lesson 5, 6, 7, and 8, and I should be able to record those pretty rapidly here.

I’m really enjoying having the Stack in the Block Editor and using that as a live playground and visual aid in the lessons. 🙂

Short update, because I gotta go pump out more content a bit quicker since I got side tracked a little. 😅

May 7 – 5:08pm

I’m currently sitting in the car writing this while my spouse drives us over to my in-laws’ place. We have Sunday dinner with our parents every weekend. The great news is that I’ve got Lessons 5, 6, 7, and 8 recorded! 🎉 I still have to edit lesson 8, and I’ve a touch more editing left for Lesson 7 as well.

While I’m at my in-laws, I’ll finish editing, finalize the template I’ll be sharing, and then do a couple outstanding items I need to do for Monday morning. So I’ll be taking a pause at 6pm for a 3 hours to eat dinner with the family and do those other things.

So instead of finishing the challenge at 8pm, since I’m pausing for 3 hours, I’ll probably finish at 11pm or near there. Despite the 2-3 hiccups I had, I’m very pleased with how this challenge is going – I can’t remember the last time I made this much stuff in such a short amount of time, and it’s thrilling.

Right now the total course time is coming to about 40 minutes and I have one more lesson to record. I feel really happy with this length and the amount of stuff I’ve been able to cover in it. 🙂

Now, to finish editing the recorded lessons, and then have a little bit of family time. 🙂

As it stands right now, here’s the amount of time I’ve spent on this course, broken down into planning, doing these updates, and doing the actual recording/production work:

TaskTime
Planning3 hours 15 minutes
Production8 hours 30 minutes
Updates3 hours
Total Time14 hours 45 minutes

May 7 – 6:13pm

We had an early dinner with the family and now I’m doing some other work but also thinking constantly about this course. Outside of actually recording and producing the content, here are the other things that need to happen:

  • Figure out a name for the course
  • Create the sales page
  • Figure out a video hosting platform to use
  • Set up the course on a little WordPress website – I’ve used LearnDash a lot for clients, but for this, I’m going to go with the pro version of Sensei, because my course stuff isn’t complex, and it’s very fast to get up and running with minimal styling TLC needed (which I really appreciate in this time crunch)

I’ll reflect later on how long it takes to create..such a small amount of content. My spouse made fun of me 😂, he was like, “nearly 15 hours, and you have..less than an hour of content?!”. But seriously:

  • coming up with the content
  • creating the supporting materials
  • recording the content
  • and then editing it

I’ve certainly seen people work faster and create more. But I’m maybe not as fast and admittedly, I did have a couple coding hiccups where I accidentally went down the wrong path and then had to redo some work. And this is all without having done the hosting stuff. Thankfully, I started – in my breaks – working on the text for the sales page, so that’s kind of ready to go into WordPress soon-ish.

Naming the mini course

Naming things..is not my forte. But nevertheless, the course needs a name! Here are some options I’ve been playing around with:

  • Thoughtful Block UI Design for WordPress
  • Block UI Design for WordPress
  • Block Design for WordPress
  • Better Block Interfaces for WordPress

I like the phase “better blocks”, I like the word “thoughtful”, and maybe it’d be cool to incorporate the “lunch n learn” idea into the title. I’m not sure yet. But I definitely need to make a decison.

May 7 – 9:10pm

Alright! I edited the podcast episode for viewSource that goes out tomorrow and got it all scheduled up, had a lovely dinner with the family and went for a walk, where we saw a deer and a moose and gorgeous skyscapes (that Calgary is famous for), and everything was sweet and spring-y right after the rain.

Now, I’m home, and it’s time to get back into the course. I paused a little after 5pm (although I did some updates at 6 above), so I have a few more hours to put into this course, and it’s pedal to the metal.

On Names

So far, there’s two votes for “Thoughtful Block Design for WordPress” and two votes for “Better Block Interfaces for WordPress”, and so I’m torn. At first, when Brian Richards suggested “Thoughtful Block Design for WordPress” over on Mastodon, I was going to be like, let’s just pick that. But then Christina voted for “Better Block Interfaces for WordPress”, and then my sister in law voted for that too, but then my spouse voted for the “Thoughtful” one, and now I’m at a loss again.

I’m asking a few friends what they think and then I’m just going to eenie meeni miney mo it if there’s no real decision.

But right now, I’m going to go finalize the template, record that lesson, and get the course production part wrapped up so I can get to the hosting/setup/sales stuff.

Let’s roll.

May 7 – 11:14pm

Alright. The last lesson is recorded! I took a small break to hang out with my spouse before he went to bed, and now after this update, I’ll get all the videos uploaded, the infrastructure set up and get this thing ready for sale. I decided on a name: Thoughtful Block UI for WordPress. A few more votes came in for the “thoughtful” version, and I am rolling with it. 🙂 Thanks to everyone who gave input on Mastodon, Twitter, and over text! I appreciate you all!

There’s definitely going to be two tiers for this course, because I have some fun code I can offer the source for in case you’re curious how I did things (especially because I did them fairly fast, so they aren’t perfect necessarily, but give you a good idea of how quickly you can whip up a fair decent interface if you think it through a little bit).

The whole course comes in at just under 50 minutes including the template walk through, so I’m pretty pleased with that. There are a couple points I wish I had gone deeper on, and I might do a bonus video (but still keeping it all under an hour) after this is launched, so I can offer that extra stuff I held back on in a couple of the videos because I was worried about length.

I’m thinking through the price points now, and I might go slightly higher than $15, now that I’ve done the course and thought about its value a bit. We’ll see. Anyway. It’s time to do infrastructure now!

May 8 – 2:50am

Well. I did want to do a final video update to celebrate the end of the challenge and launch of the course, but I’m honestly so exhausted that, that’s going to have to wait.

THE COURSE IS LIVE! I’m sitting alone at my desk, everyone is asleep, and I really need to go to bed, but WOW it feels good to have done this and gotten it out.

The landing page is super basic and maybe not even the most convincing thing. 😂 But I truly think the course came out really well, and I’m really excited to put this out. I have conversations about how to think about the block editing experience so much, and even then, I feel like I didn’t get to say everything I wanted to because I really wanted to come in under an hour. Which I did! The course is about 50 minutes long, and it’s set up with two tiers:

  • Tier 1: the full course and the planning template for $19
  • Tier 2: everything in Tier 1 plus the source code for all the examples I share in the course (about 3 full blocks, 1 partial block, and 1 custom block modification) for $29

After all is said is done, I’ve spent just under 17 hours in total on this course, it’s been an exhilarating ride. I’ll have more to say later this week. But for now, I’m going to celebrate by collapsing into bed. (I swear in the course recordings, you can progressively see me getting more and more tired, it’s a little funny).

(And of course, I believe in iterative improvement. It’s the first thing I’ve ever put up for purchase that isn’t a service. And I’ll tinker and improve and test, and get more thoughtful when I’m not racing to launch it in 24 hours or so. 🙂)

The really great thing is that I want to release some extra info, because I have a free extra 10 minutes I can use! So I’ll probably release that for free to any of the folks who buy early, and then eventually bump the prices up for new purchases in a few weeks when there’s more polish.

And of course, I’ll keep wondering if I made it too expensive and took a product that could have been a no-brainer purchase and made it something that people have to think about. Perhaps I should have stuck with my original instinct of keeping the price ultra low? I feel good about the $19 though. If I saw this and I was starting out with block development or wanting to get more thoughtful, I would instantly drop the $30 bucks, considering I charge thousands of dollars for a client project. BUT, I recognize not everyone thinks this way. Anyway, enough out loud thinking. BED.

The post Building a mini course on Block Design in 24 hours appeared first on Aurooba Makes.

]]>
https://aurooba.com/building-a-mini-course-on-block-design-in-24-hours/feed/ 0
Delete all posts of a post type from the WordPress database https://aurooba.com/delete-all-posts-of-a-post-type-from-the-wordpress-database/ https://aurooba.com/delete-all-posts-of-a-post-type-from-the-wordpress-database/#comments Mon, 01 May 2023 14:28:00 +0000 https://aurooba.com/?p=25518 A quick little WP-CLI command to nuke all posts of a specific post type in one go.

The post Delete all posts of a post type from the WordPress database appeared first on Aurooba Makes.

]]>
I found myself having a really odd problem on one of my development sites. At some point, I must have installed a plugin that creates a post type called wpcode but then I got rid of it. Since then, on every dashboard load, I would get this error:

PHP Notice:  Function map_meta_cap was called <strong>incorrectly</strong>. 
The post type <code>wpcode</code> is not registered, so it may not be reliable to check the capability <code>edit_post</code> against a post of that type. 
Please see <a href="proxy.php?url=https://wordpress.org/documentation/article/debugging-in-wordpress/">Debugging in WordPress</a> for more information.
(This message was added in version 4.4.0.) in .../app/public/wp-includes/functions.php on line 5865

I tried to ignore but there was no ignoring it. So here’s a quick WP-CLI command that will force delete any posts from a custom post type if needed. Just replace POST_TYPE_HERE with your chosen post type, in my case, wpcode.

wp post delete $(wp post list --post_type='POST_TYPE_HERE' --format=ids) --force

It’ll let you know what posts it deleted (by way of post ID), which may or may not be helpful. I just copied this verbatim from the WP-CLI docs example and it worked like a charm.

The relief I felt at no longer seeing this error in my DEBUG LOG was palpable. WP-CLI for the win, y’all.

Did you like this article? Get articles like this straight in your inbox for easy reading. 🙂

The post Delete all posts of a post type from the WordPress database appeared first on Aurooba Makes.

]]>
https://aurooba.com/delete-all-posts-of-a-post-type-from-the-wordpress-database/feed/ 1