[wp-trac] [WordPress Trac] #39850: Wordpress embedded links drop query vars from URL

WordPress Trac noreply at wordpress.org
Sat Feb 11 23:02:52 UTC 2017


#39850: Wordpress embedded links drop query vars from URL
-------------------------+-----------------------------
 Reporter:  charleslf    |      Owner:
     Type:  enhancement  |     Status:  new
 Priority:  normal       |  Milestone:  Awaiting Review
Component:  Embeds       |    Version:
 Severity:  normal       |   Keywords:
  Focuses:               |
-------------------------+-----------------------------
 When embedding a wordpress page within another post, any query strings
 that are passed in the URL get dropped.

 For example, if embedding http://example.com/page-name/?foo=bar, the
 actual URL that gets passed to the oEmbed function (and later on to the
 template files) is http://example.com/page-name/embed/  (foo=bar gets
 dropped).

 The link inside the blockquote also drops the url query variable and links
 to http://example.com/page-name/ instead of http://example.com/page-
 name/?foo=bar

 As I see, this occurs because the `wp_filter_pre_oembed_result` function
 in `embed.php` uses `url_to_postid` to get the embeded post's ID, and
 later `get_post_embed_url` uses that ID to create the embed permalink. So
 naturally any url query vars are not preserved in the final URL
 construction.
 Similarly in `get_post_embed_html`, the function uses `esc_url(
 get_permalink( $post ) )`, thus  reconstructing the permalink without
 knowledge of the initial url.

 I encountered this when embedded a specific photo gallery (from
 nextcellent plugin), but I assume some other plugins such as
 language/translation ones may also be affected.

 I don't think the URL's should be dropping any of the query variables.
 However, if that is a requirement, it would be good to also pass on the
 original url in the `post_embed_url` hook to allow plugin developers to
 make sure to add any parameters from the original url that got dropped off
 in the embedded url.

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


More information about the wp-trac mailing list