[wp-trac] [WordPress Trac] #29608: wptexturize messes up shortcode with parameter meta_compare=">="

WordPress Trac noreply at wordpress.org
Tue Sep 9 21:15:41 UTC 2014


#29608: wptexturize messes up shortcode with parameter meta_compare=">="
--------------------------+-----------------------------
 Reporter:  bobbingwide   |      Owner:
     Type:  defect (bug)  |     Status:  new
 Priority:  normal        |  Milestone:  Awaiting Review
Component:  Formatting    |    Version:  4.0
 Severity:  normal        |   Keywords:
  Focuses:                |
--------------------------+-----------------------------
 This is a direct follow on to #28564.

 I have a number of shortcodes where I pass args to get_posts() almost
 directly from the shortcode.

 In one particular example I use meta_compare="<" to display posts which
 are earlier than a certain date.
 In another I use meta_compare=">=" to show posts on or greater than the
 date.

 In WordPress 4.0 the ">=" meta_compare has stopped working.

 '''Expected result:''' WordPress 3.9.1

 [shortcode meta_compare=">=" ]
 will end up passing a meta_compare value of >= to get_posts(). i.e.
  [meta_compare] = >=

 '''Unexpected result:''' WordPress 4.0

 the array field value passed to get_posts() becomes
   [meta_compare] => ’>=’

 This problem is caused by wptexturize(), which converts a double quote to
 ” or a single quote to ’

 Pragmatic workaround:

 {{{
  remove_filter( "the_content", "wptexturize" );
 }}}


 Alternatively, I could introduce a specific test on the meta_compare
 parameter value and strip unexpected entities.
 I may have to do this anyway since I've seen a situation where the visual
 editor  has converted > to > which has caused a similar failure.

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


More information about the wp-trac mailing list