Skip to content

Proposal: Add On This Day Widget - #11630

Closed
alshakero wants to merge 65 commits into
WordPress:trunkfrom
alshakero:add/on-this-day-widget
Closed

Proposal: Add On This Day Widget#11630
alshakero wants to merge 65 commits into
WordPress:trunkfrom
alshakero:add/on-this-day-widget

Conversation

@alshakero

@alshakero alshakero commented Apr 22, 2026

Copy link
Copy Markdown

Summary

Adds a new On This Day dashboard widget to WordPress core that surfaces the current user's posts published on today's month and day in previous years, so returning authors see a friendly nudge of what they wrote one, five, or ten years ago.

The widget is implemented as a first-class core feature, following the same pattern as Site Health.

User-facing behavior

  • Widget title reads On This Day · <Month Day> and appears in the dashboard grid for users with edit_posts.
  • Each year is shown with a year badge (e.g. 2023 · 3 yrs) and the posts published that day as cards with excerpt, time, categories, and Edit/View links.
  • Draft and private posts are included for the author and visually distinguished; public posts link to the edit screen with a View link to the permalink.
  • Empty state messaging encourages the author when today has no historical posts.

Screenshots

image

Testing

  • Checkout this PR locally and run npm run env:start, then npm run env:install.
  • Go to Dashboard (admin:password), you should see the widget.
  • Insepect its empty state.
  • Import this file to create backdated posts: filexml
  • Use the widget.

Trac ticket: https://core.trac.wordpress.org/ticket/65116#ticket

Use of AI Tools

AI assistance: Yes
Tool(s): Cursor
Model(s): Claude Opus 4.7 + Codex 5.5
Used for: The code is ~50% written with AI, but I guided it every step of the way and reviewed every line.


This Pull Request is for code review only. Please keep all other discussion in the Trac ticket. Do not merge this Pull Request. See GitHub Pull Requests for Code Review in the Core Handbook for more details.

@github-actions

Copy link
Copy Markdown

Test using WordPress Playground

The changes in this pull request can previewed and tested using a WordPress Playground instance.

WordPress Playground is an experimental project that creates a full WordPress instance entirely within the browser.

Some things to be aware of

  • All changes will be lost when closing a tab with a Playground instance.
  • All changes will be lost when refreshing the page.
  • A fresh instance is created each time the link below is clicked.
  • Every time this pull request is updated, a new ZIP file containing all changes is created. If changes are not reflected in the Playground instance,
    it's possible that the most recent build failed, or has not completed. Check the list of workflow runs to be sure.

For more details about these limitations and more, check out the Limitations page in the WordPress Playground documentation.

Test this pull request with WordPress Playground.

@alshakero
alshakero marked this pull request as ready for review April 22, 2026 22:19
@github-actions

github-actions Bot commented Apr 22, 2026

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

Unlinked Accounts

The following contributors have not linked their GitHub and WordPress.org accounts: @escapemanuele.

Contributors, please read how to link your accounts to ensure your work is properly credited in WordPress releases.

Core Committers: Use this line as a base for the props when committing in SVN:

Props alshakero, jeherve, apermo, dmsnell, jonsurrell, jorbin, peterwilsoncc, wildworks, joedolson, talldanwp, kellychoffman, simison, joen, retrofox, matt, sabernhardt, annezazu.

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@escapemanuele

Copy link
Copy Markdown
image

Nice, nice! I must have some CSS issue here as I do not see the dates on the left.

@alshakero

alshakero commented Apr 23, 2026

Copy link
Copy Markdown
Author

Nice, nice! I must have some CSS issue here as I do not see the dates on the left.

It looks like the Playground is running an outdated build. I rebased to rebuilt. Hopefully that will fix it.

Edit: It's a playground issue, I updated the testing steps.

@escapemanuele

Copy link
Copy Markdown

Tested locally and it loads just fine!

@alshakero

Copy link
Copy Markdown
Author

Redesigned following this.

image

@jeherve jeherve left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've been poking at the query logic and comparing against my own little plugin. I thought I'd mention a few patterns I picked up from feedback from users.

Use date_query instead of raw SQL

Right now filter_posts_where() uses a posts_where filter with hand-rolled MONTH()/DAY()/YEAR() comparisons. It works, but WP_Query already supports this natively through date_query; it handles the escaping, uses the documented API surface, and is friendlier to anyone who later wants to extend the behavior. class-query.php from the plugin is a reasonable reference.

Consider widening the window beyond the exact day

Of note, most "memory" products — Google Photos, Apple's On This Day, Facebook Memories — don't restrict to the exact calendar day; they widen the window to nearby dates so something shows up even on slow days. The plugin started the same way this PR does, and I eventually moved to a week-long window by default, with exact-day matching as an opt-in.

A couple of reasons this matters:

  • Feb 29. With exact matching, leap-day posts only surface once every four years, and on Feb 29 in a non-leap year… well, that day doesn't exist, so the widget is awkwardly blank.
  • Sparse posters. Someone who publishes weekly but not daily will see the empty state on most days of the year; a small window (±3 days?) turns that into a useful recap instead.

I'm wondering if we could default to a modest window and leave exact-match behind a filter for folks who really want it. Closer to how the genre works in the wild.

<time datetime="…"> needs a timezone

Small thing on the post meta row:

$time_iso = get_the_time( 'Y-m-d H:i', $post );
// ...
<time datetime="<?php echo esc_attr( $time_iso ); ?>">

get_the_time() returns the post time in the site's timezone, but the emitted string has no offset or Z. Per the HTML spec that's a "local date and time" without context, so screen readers and timezone-aware tooling interpret it as the user's local time rather than the site's. Either drop to Y-m-d (a plain date is a valid datetime value), or switch to get_the_time( 'c', $post ), which gives you ISO 8601 with an offset attached.

*
* @since 7.1.0
*/
#[AllowDynamicProperties]

@apermo apermo Apr 25, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is allow dynamic properties needed? As it is new code, I would refrain from adding this.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great point. I was undecided about this attribute tbqh. But I was mimicking Site Health and decided to keep it for consistency. But it's not needed for my class.

I removed it.

@alshakero

alshakero commented Apr 25, 2026

Copy link
Copy Markdown
Author

Thanks for the amazing feedback, @jeherve!

Use date_query instead of raw SQL

Done.

Consider widening the window beyond the exact day

I added a minimal slider to keep the noise down the allows adjusting the range from 1 to 7 days.

needs a timezone

Fixed.

@dmsnell dmsnell left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all of the calls to translation which directly output (e.g. via printf()) need to be escaped so they don’t break the page. this includes calls to _e().

happy to give another round here. looks like a nice widget

'on-this-day',
sprintf(
'#dashboard_on_this_day{--otd-today:%s;}',
wp_json_encode( self::get_window_label( self::get_window_days() ) )

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure what the intention here is with JSON encoding, but this is CSS, which does not understand JSON.

if you are looking to escape a CSS string it would be best to follow CSS language rules otherwise this will open up unexpected corruption.

calling @sirreal on this one, but I would imagine that this would be preferable to json_encode()

$escaped_label = strtr( self::get_window_label( ... ), '"', '\"' );

there are other details, like forbidding newline characters or invalid UTF-8 in the string, but JSON encoding has its own list of corrupting circumstances

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a common repurposing of json_encode to wrap loose strings with quotes and escape any occurring quotes if any. It also escapes new lines and a few other baddies. Frankly I think it's probably safer than making my own function. But GPT-5.5 obliged and created a helper.

Happy to settle for either.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I hear you, and I’ll defer to @sirreal who can speak much more eloquently on this than I can.

having a wrapper at least leaves more intention in the code which can be later cleaned up, but using JSON serialization hides that intention. there is work to add string escaping in Core, which will be preferable here anyway once it arrives.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK I side stepped this by avoiding CSS props in favor of HTML attributes.

Comment thread src/wp-admin/includes/class-wp-on-this-day.php Outdated
Comment thread src/wp-admin/includes/class-wp-on-this-day.php Outdated
Comment thread src/wp-admin/includes/class-wp-on-this-day.php Outdated
Comment thread src/wp-admin/includes/class-wp-on-this-day.php Outdated
Comment thread src/wp-admin/includes/class-wp-on-this-day.php Outdated
* @since 7.1.0
* @var int
*/
const POSTS_PER_PAGE = -1;

@peterwilsoncc peterwilsoncc Jul 6, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, forgot to log this. Unlimited queries can be bad so let's use a high default that's not unlimited.

(In a previous job I worked at a newspaper publishing hundreds of articles a day. They've been using WordPress as their CMS since 2016 so an unlimited query would end up returning at least 1000 articles. This would cause problems. ;)

Suggested change
const POSTS_PER_PAGE = -1;
const POSTS_PER_PAGE = 50;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think this should be a smaller limit? From a practical standpoint, how many posts would somebody actually want to see in this widget? Once we're deciding not to just show them all, it seems like we should set more browseable limit, e.g. the top 10 posts.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@joedolson Yes, I think you are right. 50 would still make for a very long widget. Using the default value makes sense.

@joedolson joedolson left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree with previous reviews; there's a fair amount of room here to continue to improve.

Comment thread src/wp-admin/css/on-this-day.css Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fully agree with this.there's no reason not to combine this with existing CSS.

Comment thread src/wp-admin/css/on-this-day.css Outdated
}

#wp_dashboard_on_this_day .wp-on-this-day-title::after {
content: attr(data-wp-otd-window-label);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, screen readers will announce generated content. This still creates a problem; it'll be announced as, e.g. On this dayJULY 6th". However, I don't really see why we would choose to do it this way; what's the barrier to having this directly in the HTML?

* @since 7.1.0
* @var int
*/
const POSTS_PER_PAGE = -1;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think this should be a smaller limit? From a practical standpoint, how many posts would somebody actually want to see in this widget? Once we're deciding not to just show them all, it seems like we should set more browseable limit, e.g. the top 10 posts.

* Builds the date query clause for today's anniversary date.
*
* On February 28 in a non-leap year, February 29 posts are included so
* leap-day anniversaries still appear.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The logic here makes sense to me, per @alshakero's response.

Comment on lines +280 to +281
'%s post has been published in a previous year:',
'%s posts have been published in previous years:',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need to include the clause "in previous years" - that seems implied to me.

<ul class="wp-on-this-day-years">
<?php foreach ( $posts_by_year as $year => $year_posts ) : ?>
<li class="wp-on-this-day-year">
<h3 class="wp-on-this-day-year-heading"><?php echo esc_html( $year ); ?></h3>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think @dmsnell is just asking whether it might make sense to add an attribute that extenders can use for styling.

I'm not sure I can see a lot of reason for that; obviously people can potentially want to style any number of things, but it doesn't seem like a significant use case, to me.

It's obviously pretty harmless to add a class for the year (I don't think I'd use a data attribute for this), but I also don't see a lot of value in it. Could go either way.

?>
<li class="wp-on-this-day-post">
<a href="<?php the_permalink(); ?>"><?php echo esc_html( $title ); ?></a>
<?php if ( get_current_user_id() !== $author_id ) : ?>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see a lot of value in omitting the current user from this data. For single author sites it makes sense, as all authors are the same person; but for heavily multi-author sites it just looks strange to me for some posts to omit author information.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes but the vast majority of sites are single-author, so this will be noise for most people.

Comment thread src/wp-admin/includes/dashboard.php Outdated
}

// On This Day.
if ( current_user_can( 'edit_posts' ) ) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed. There's nothing non-public about this.

wp_add_dashboard_widget(
self::WIDGET_ID,
sprintf(
'<span class="wp-on-this-day-title" data-wp-otd-window-label="%s">%s</span>',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand why we aren't rendering the date directly in HTML. It makes the text unselectable.

I assume it's to avoid problems with justify-content: space-between on the heading? That can be gotten around by nesting elements, too, so it's not necessary.

I'm just not sure we should be making it habitual to use CSS generated readable content.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just remembered why! Having the pill as part of the title renders it here as well. I'm moving the date into the content.

image

*
* @since 7.1.0
*/
public static function register_widget() {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It calls through to wp_add_dashboard_widget, so I think it should follow a similar naming convention. add_dashboard_widget or even just add.

Also it'd be good to disambiguate from the existing register_widget - https://developer.wordpress.org/reference/functions/register_widget/, as that's for the other type of widget.

*
* @since 7.1.0
*/
public static function render_dashboard_widget() {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it need to be public?

If it's this way for the test, then I think there are examples across that codebase of using reflection for this.

@t-hamano

t-hamano commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

@alshakero, Do you have the bandwidth to address the feedback? If not, someone else can help with the task 🙂

@alshakero

Copy link
Copy Markdown
Author

Hi @t-hamano! I'm on this now. I was on a short holiday.

@alshakero

alshakero commented Jul 8, 2026

Copy link
Copy Markdown
Author

Thank you for the feedback. I admit, this is much neater now. Summary of the changes:

@peterwilsoncc's review:

  • Removed the custom caching layer (cache constants, salted markup/posts cache, get_cached_posts()) in favor of WP_Query's native post-queries caching.
  • Made the widget available to all users by removing the current_user_can( 'edit_posts' ) check in dashboard.php
  • Fixed author attribution edge cases — the "by X" span is skipped when post_author is 0 or the display name is empty
  • Restructured the leap-day logic in the date query clause to put the special case inside an if instead of an early return
  • Moved escaping of the author next to the echoing.

@t-hamano's review:

  • Converted the class-based implementation to plain functions matching other dashboard widgets (wp_dashboard_on_this_day() etc.), kept in a separate file, with internal helpers made private via underscore prefix and @access private
  • Capped the post list at 10 (was unlimited), still adjustable via the query-args filter; added a test for the cap
  • Deleted the dedicated on-this-day.css file and its script-loader registrations, folding the styles into dashboard.css
  • Fixed the date pill accessibility by rendering the date as a real <span> in the title instead of CSS content: attr()
  • CSS cleanups: removed one-use custom properties, trimmed the year-heading rule to font-weight: 600, simplified selectors to element-based where unambiguous, and replaced vertical-align with flexbox.

@joedolson's comments:

  • Changed the phrasing to the cleaner "N posts has been published on this day", without "previous years".
  • Moved the date pill into its own span. My mistake was testing two elements which broke the layout when I tried it. With nesting it works great.

@peterwilsoncc peterwilsoncc left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you so much for all your work on this, I understand the review process can be a lot but everyone's working toward the same goal.

I've noticed a few more things:

  • reducing db queries
  • a minor copy change for a single post
  • the remaining comments are for an edge case when the dashboard is customised by users, either the widget is hidden or the location set by the user.

Comment thread src/wp-admin/includes/dashboard-on-this-day.php
Comment on lines +71 to +81
printf(
esc_html(
/* translators: %s: Number of posts. */
_n(
'%s post has been published on this day:',
'%s posts have been published on this day:',
$post_count
)
),
esc_html( number_format_i18n( $post_count ) )
);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a pretty common pattern in the default themes for comments, see example in 2010. The else condition uses _n() as pluralization rules differ in various languages.

Suggested change
printf(
esc_html(
/* translators: %s: Number of posts. */
_n(
'%s post has been published on this day:',
'%s posts have been published on this day:',
$post_count
)
),
esc_html( number_format_i18n( $post_count ) )
);
if ( 1 === $post_count ) {
esc_html_e( 'One post has been published on this day:' );
} else {
printf(
esc_html(
/* translators: %s: Number of posts. */
_n(
'%s post has been published on this day:',
'%s posts have been published on this day:',
$post_count
)
),
esc_html( number_format_i18n( $post_count ) )
);
}

Comment on lines +21 to +23
if ( empty( $posts ) ) {
return;
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Without a placeholder, this can reset sorting/dragging & dropping widgets on the dashboard but it takes a little work to reproduce.

  1. Move the OTD widget below the WordPress Events and News widget.
  2. Edit the dates of all the posts displayed in the widget to the day before
  3. Reload the dashboard, the OTD widget is hidden.
  4. Swap the positions of the at a glance and site health widgets
  5. Reload the dashboard
  6. Edit the date of a post so it will appear in the OTD widget
  7. Reload the dashboard
  8. The OTD widget returns to the default position.

Another effect is that if there are no posts on this day, the widget does not appear in the site options tab allowing users to hide the widget if they wish to do so.

Image

It uses a CSS hack but I was able to fix it with the following:

Suggested change
if ( empty( $posts ) ) {
return;
}
$title_class = 'wp-on-this-day-title';
if ( empty( $posts ) ) {
$title_class .= ' wp-on-this-day-title-empty';
}

Additionally:

  • Modify the registration of the widget to use the dynamic class in the title (remember to use esc_attr())
  • Add the following CSS to the dashboard styles:
    #wp_dashboard_on_this_day:has(.wp-on-this-day-title-empty) {
    	display: none;
    }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems like a reasonable solution to do this, but wouldn't it be simpler to do $title_class .= ' hidden';, and inherit existing styles?

wp_add_dashboard_widget(
'wp_dashboard_on_this_day',
sprintf(
'<span class="wp-on-this-day-title">%s <span class="wp-on-this-day-date">%s</span></span>',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The date appears in the screen options placing the date in the title like this.

Image

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe the current implementation is likely based on design feedback, but I'm considering putting the date within the content.

Image

Comment thread src/wp-admin/includes/dashboard-on-this-day.php
Comment thread src/wp-admin/includes/dashboard.php
wp_add_dashboard_widget(
'wp_dashboard_on_this_day',
sprintf(
'<span class="wp-on-this-day-title">%s <span class="wp-on-this-day-date">%s</span></span>',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe the current implementation is likely based on design feedback, but I'm considering putting the date within the content.

Image

Comment thread src/wp-admin/includes/dashboard-on-this-day.php Outdated
Comment thread src/wp-admin/css/dashboard.css Outdated
Comment thread src/wp-admin/includes/dashboard-on-this-day.php Outdated
Comment thread src/wp-admin/includes/dashboard-on-this-day.php Outdated
@alshakero

Copy link
Copy Markdown
Author

@t-hamano addressed all.

@t-hamano

t-hamano commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

@alshakero Thanks for the update. I have no further feedback from my end, but we might need to address the following outstanding points.


Disable the meta cache for the query: #11630 (comment)
@peterwilsoncc


If the widget itself is not registered due to an early return, the dashboard's sort order will be reset: #11630 (comment)
@peterwilsoncc


Should we hide my author name on my posts? #11630 (comment)
@joedolson


The date badge has been moved from the title area to the content area

619198940-72121456-a26e-406a-9f82-dc18a37d9770

This was my suggestion, but if we want to maintain the previous design, I think we should hide the badge displayed in the screen options.

619126296-ef942d2d-9d2e-40fa-9acb-f6db97efb07b

#11630 (comment)
@peterwilsoncc

@alshakero

Copy link
Copy Markdown
Author

Addressed all @peterwilsoncc's feedback.

@alshakero

Copy link
Copy Markdown
Author

Should we hide my author name on my posts? #11630 (comment)

I addressed that here. IMO yes, the vast majority of sites are single-author so rendering the author will be noise for most users.

@t-hamano t-hamano left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Personally, I don't have any further feedback at this time. If there's any additional feedback from others, please feel free to comment.

@joedolson joedolson left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Possible tweak; but I think this is essentially ready to go.

function wp_dashboard_on_this_day_setup() {
$title_class = 'wp-on-this-day-title';
if ( empty( wp_dashboard_on_this_day_get_posts() ) ) {
$title_class .= ' wp-on-this-day-title-empty';

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't verify that it would work, but I commented in Peter's review notes that it seems simpler to use $title_class .= ' hidden'; and omit the extra CSS. But only if the CSS specificity will allow that to work.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't really want to hide the title itself, we use parent selectors to hide the whole parent postbox using this classname. So hidden wouldn't work. I switched to a filter to add the hidden classname on the parent though.

Use filter to add classname

@joedolson joedolson left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown

A commit was made that fixes the Trac ticket referenced in the description of this pull request.

SVN changeset: 62681
GitHub commit: e8f519d

This PR will be closed, but please confirm the accuracy of this and reopen if there is more work to be done.

@github-actions github-actions Bot closed this Jul 9, 2026
@annezazu

Copy link
Copy Markdown

Great work, all. Thanks for the continued effort in particular @alshakero 👏🏼.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.