[wp-trac] [WordPress Trac] #47574: Public custom post status cannot be embedded

WordPress Trac noreply at wordpress.org
Thu Jun 20 10:10:42 UTC 2019


#47574: Public custom post status cannot be embedded
---------------------------+-----------------------------
 Reporter:  goaroundagain  |      Owner:  (none)
     Type:  defect (bug)   |     Status:  new
 Priority:  normal         |  Milestone:  Awaiting Review
Component:  Embeds         |    Version:  5.2.2
 Severity:  normal         |   Keywords:
  Focuses:                 |
---------------------------+-----------------------------
 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;
 }
 }}}

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/47574>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list