#47574 closed defect (bug) (fixed)
Public custom post status cannot be embedded
Reported by: |
|
Owned by: |
|
---|---|---|---|
Milestone: | 5.7 | Priority: | normal |
Severity: | normal | Version: | 5.2.2 |
Component: | Embeds | Keywords: | has-unit-tests has-patch has-dev-note |
Focuses: | Cc: |
Description
Currently it is not possible to embend any post with a custom post status, even when the custom post status is set to
'public' => true
From register_post_status: https://codex.wordpress.org/Function_Reference/register_post_status
public: (bool) (optional) Whether posts of this status should be shown in the front end of the site.
For this reason, all post with a custom post status set to public should be embeddable.
The reason why thats not possible is in get_oembed_response_data: https://developer.wordpress.org/reference/functions/get_oembed_response_data/
if ( 'publish' !== get_post_status( $post ) ) { return false; }
It just checks if the post status is "publish" and not if "public" on the post status object is set to "true".
To support custom public post status, this could be a solution:
if ( true !== get_post_status_object( get_post_status( $post ) )->public ) { return false; }
Another possibility would be to provide a custom filter:
if ( true !== in_array( get_post_status( $post ), apply_filters( 'oembed_post_status', array( 'publish' ) ) ) { return false; }
Attachments (3)
Change History (16)
This ticket was mentioned in Slack in #core by marybaum. View the logs.
5 years ago
#8
@
4 years ago
I have tested 47574.3.diff and confirmed that posts with a custom post status can be embedded.
-I don't know enough to review the test.
This ticket was mentioned in PR #1020 on WordPress/wordpress-develop by peterwilsoncc.
4 years ago
#9
#10
@
4 years ago
In the linked pull request, I've modified the patch to use the new `is_post_publicly_viewable()` function which allows for public custom statuses and post types rather than repeat the code.
I've replaced the existing check the post exists, as is_post_publicly_viewable()
doesn't consider non-existent post as public. That would be silly :D
peterwilsoncc commented on PR #1020:
4 years ago
#12
#13
@
4 years ago
- Keywords has-dev-note added
This was mentioned in the miscellaneous developer changes developer note: https://make.wordpress.org/core/2021/02/23/miscellaneous-developer-focused-changes-in-wordpress-5-7/.
Now with unit tests