Commit Graph

68 Commits

Author SHA1 Message Date
John Blackbourn 7b230cafab Abstract the shortcode attribute parsing regex into its own function, update the JavaScript counterpart, and introduce a test to ensure they do not diverge again.
Fixes #34191
Props miqrogroove, johnbillion

Built from https://develop.svn.wordpress.org/trunk@34933


git-svn-id: http://core.svn.wordpress.org/trunk@34898 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-08 03:12:24 +00:00
Helen Hou-Sandí cd3367d942 Shortcodes: Pass the name as context for `shortcode_atts_{$shortcode}`.
props mattheu.
fixes #34167.

Built from https://develop.svn.wordpress.org/trunk@34868


git-svn-id: http://core.svn.wordpress.org/trunk@34833 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-06 14:34:24 +00:00
Scott Taylor 7a0f8602f3 Shortcodes/Formatting: Add PCRE Performance Testing
* Move pattern from `wptexturize()` into a separate function.
* Move pattern from `wp_html_split()` into a separate function.
* Beautify code for `wp_html_split()`.
* Remove unnecessary instances of `/s` modifier in patterns that don't use dots.
* Add `tests/phpunit/data/formatting/whole-posts.php` for testing larger strings.
* Add function `benchmark_pcre_backtracking()`.
* Add tests for `wp_html_split()`.
* Add tests for `wptexturize()`.
* Add tests for `get_shortcode_regex()`.

Props miqrogroove.
Fixes #34121.

Built from https://develop.svn.wordpress.org/trunk@34761


git-svn-id: http://core.svn.wordpress.org/trunk@34726 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-02 04:26:25 +00:00
Scott Taylor 99347fd96e Shortcodes: Fix PCRE performance bugs in `get_shortcode_regexp()` and related to `wptexturize()`, `do_shortcode()`, and `strip_shortcodes()`
Alters unit tests.

Props miqrogroove.
Fixes #33517.

Built from https://develop.svn.wordpress.org/trunk@34747


git-svn-id: http://core.svn.wordpress.org/trunk@34712 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-01 18:05:25 +00:00
Scott Taylor d8179a2a1f Shortcodes: prevent registration of invalid shortcode names.
Adds unit tests.

Props miqrogroove.
Fixes #34090.

Built from https://develop.svn.wordpress.org/trunk@34745


git-svn-id: http://core.svn.wordpress.org/trunk@34710 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-01 17:34:24 +00:00
Scott Taylor 82f244414e Shortcodes: clarify the `@return` docs for `shortcode_parse_atts()`.
Props miqrogroove.
See #23307.

Built from https://develop.svn.wordpress.org/trunk@34744


git-svn-id: http://core.svn.wordpress.org/trunk@34709 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-01 17:32:26 +00:00
Nikolay Bachiyski 3778cae8ec Shortcodes: don't allow unclosed HTML elements in attributes
Built from https://develop.svn.wordpress.org/trunk@34134


git-svn-id: http://core.svn.wordpress.org/trunk@34102 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-14 22:36:24 +00:00
Scott Taylor ef87172270 `foreach` is a statement, not a function.
See #33491.

Built from https://develop.svn.wordpress.org/trunk@33734


git-svn-id: http://core.svn.wordpress.org/trunk@33702 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-25 20:28:22 +00:00
Dominik Schilling 96a6f0ac1f Pinking shears.
Built from https://develop.svn.wordpress.org/trunk@33627


git-svn-id: http://core.svn.wordpress.org/trunk@33594 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-17 21:39:25 +00:00
Dominik Schilling e9e88d0b4b Shortcodes: Trim whitespace after sanitizing the shortcode output.
props Ankit K Gupta, obenland, miqrogroove.
fixes #33259.
Built from https://develop.svn.wordpress.org/trunk@33600


git-svn-id: http://core.svn.wordpress.org/trunk@33567 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-09 20:49:25 +00:00
Dion Hulse f8136f2ab2 Fix `do_shortcode('<[shortcode]')` edge case.
Props miqrogroove.
Merges [33499] trunk.
See #33116.

Built from https://develop.svn.wordpress.org/trunk@33594


git-svn-id: http://core.svn.wordpress.org/trunk@33561 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-07 02:50:25 +00:00
Scott Taylor 15a7d98ce6 Protect newlines inside of `CDATA`. This was breaking things, notably inline JS that used comments for HTML standards compat.
* Tokenize newlines in `WP_Embed::autoembed()` before running `->autoembed_callback()`
* Tokenize newlines with placeholders in `wpautop()` 
* Introduce `wp_html_split()` to DRY the RegEx from `wp_replace_in_html_tags()` and `do_shortcodes_in_html_tags()`

Adds unit tests.

Props miqrogroove, kitchin, azaozz.
Fixes #33106.

Built from https://develop.svn.wordpress.org/trunk@33469


git-svn-id: http://core.svn.wordpress.org/trunk@33436 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-28 23:03:24 +00:00
Gary Pendergast c3e0ed7e03 Shortcodes: Improve the reliablity of shortcodes inside HTML tags.
Props miqrogroove.

See #15694.


Built from https://develop.svn.wordpress.org/trunk@33359


git-svn-id: http://core.svn.wordpress.org/trunk@33331 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-22 05:15:25 +00:00
John Blackbourn bc745f81a9 Allow shortcode parameter names (attributes) to contain dashes.
Props aaroncampbell, tyxla, izem
Fixes #9405

Built from https://develop.svn.wordpress.org/trunk@33118


git-svn-id: http://core.svn.wordpress.org/trunk@33089 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-07 23:59:24 +00:00
Scott Taylor 0c866cfa79 Check `is_callable()` in `do_shortcode_tag()`, not `add_shortcode()`.
Add a `_doing_it_wrong()` in `do_shortcode_tag()` when `is_callable()` is `false`.

Props aaroncampbell.
See #32445.

Built from https://develop.svn.wordpress.org/trunk@32867


git-svn-id: http://core.svn.wordpress.org/trunk@32838 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-19 21:33:25 +00:00
Scott Taylor 2bac335bdc Add missing doc blocks to `shortcodes.php`.
See #32444.

Built from https://develop.svn.wordpress.org/trunk@32624


git-svn-id: http://core.svn.wordpress.org/trunk@32594 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-27 19:39:25 +00:00
Dominik Schilling 64fc7294b6 Use HTTPS URLs for codex.wordpress.org.
see #27115.
Built from https://develop.svn.wordpress.org/trunk@32116


git-svn-id: http://core.svn.wordpress.org/trunk@32095 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-12 21:29:32 +00:00
Drew Jaynes e0b3db1e09 Remove a stray period introduced in [31242].
Props SergeyBiryukov.
See #31048.

Built from https://develop.svn.wordpress.org/trunk@31245


git-svn-id: http://core.svn.wordpress.org/trunk@31226 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-19 08:47:24 +00:00
Drew Jaynes 3a0726d7b8 Add more complete documentation for parameters, globals, and return values to the DocBlocks for `remove_shortcode()`, `shortcode_exists()`, and `do_shortcode()`.
Props SergeyBiryukov.
Fixes #31048.

Built from https://develop.svn.wordpress.org/trunk@31243


git-svn-id: http://core.svn.wordpress.org/trunk@31224 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-19 08:40:24 +00:00
Drew Jaynes a8e2ae2117 Ensure both parameters and the return for `has_shortcode()` are fully documented.
Props cais, SergeyBiryukov
See #31048.

Built from https://develop.svn.wordpress.org/trunk@31242


git-svn-id: http://core.svn.wordpress.org/trunk@31223 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-19 08:36:25 +00:00
Scott Taylor fc843ce4d0 There are some random `add_action()` and `add_filter()` calls littered around some files in `wp-includes/`. These should be moved to `wp-includes/default-filters.php` with the rest of the registered hooks. It seems like this was the best practice for awhile and then we randomly stopped. This file loads way before any of the includes, so the hooks will be registered for any request that loads WordPress, even `SHORTINIT` - a lot of the hooks registered won't run anyways (that's already the case).
See #30947.

Built from https://develop.svn.wordpress.org/trunk@31168


git-svn-id: http://core.svn.wordpress.org/trunk@31149 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-12 16:40:23 +00:00
Scott Taylor 4feecb922c Use `&&` instead of `and` in the 3 places where `and` was used.
See #30799.

Built from https://develop.svn.wordpress.org/trunk@31099


git-svn-id: http://core.svn.wordpress.org/trunk@31080 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-08 21:12:22 +00:00
Drew Jaynes 3b6c9519a8 Ensure inline code is markdown-escaped as such, HTML tags are removed from summaries, and that code snippets in descriptions are properly indented.
Affects DocBlocks for the following core elements:
* Backtick-escape HTML tags in several argument descriptions for `wp_link_pages()`
* Remove an HTML tag from the summary for `prepend_attachment()`
* Backtick-escape inline code in the description for `get_extended()`
* Backtick-escape inline code in the description for `get_post_type_labels()`
* Various markdown formatting in the description for `add_rewrite_endpoint()`
* Markdown-indent a code snippet in the file header for wp-includes/shortcodes.php
* Markdown-indent code snippets in the description for `add_shortcode()

Props rarst.
See #30473.

Built from https://develop.svn.wordpress.org/trunk@30545


git-svn-id: http://core.svn.wordpress.org/trunk@30534 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-24 06:15:24 +00:00
Drew Jaynes f8657d5890 Remove redundant and erroneous `@uses` tag from most core inline documentation.
Per our inline documentation standards, no further use of the `@uses` tag is recommended as used and used-by relationships can be derived through other means. This removes most uses of the tag in core documentation, with remaining tags to be converted to `@global` or `@see` as they apply.

Fixes #30191.

Built from https://develop.svn.wordpress.org/trunk@30105


git-svn-id: http://core.svn.wordpress.org/trunk@30105 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-30 01:05:24 +00:00
Scott Taylor 37a0c36d38 The joys of `wptexturize()`:
* Revert parts of [28773] and [28727] and [29748].
* Do not crash PHP. Make the shortcode quantifier possessive to avoid backtracks.
* Reduce backtracking in long HTML comments by 100x.
* Do not ignore unclosed HTML comments.
* Do not break unregistered shortcodes, e.g. `[hello attr="value"]`.
* Do not break HTML in shortcode attributes, e.g. `[hello attr="<"]`.
* Do not match for shortcodes when there is extra whitespace, e.g. `[ hello ]`.
* Add unit tests to show #12690 was not fully resolved.
* Tested PHP 5.2.4, 5.2.13, 5.4.32, and 5.5.8.

Adds/modifies unit tests.

Props miqrogroove.
See #29557.

Built from https://develop.svn.wordpress.org/trunk@29781


git-svn-id: http://core.svn.wordpress.org/trunk@29553 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-09-29 04:07:15 +00:00
Scott Taylor 0a848a6171 `wptexturize()` improvements:
* Expand the `wptexturize()` RegEx to include the list of registered shortcodes.
* Avoid backtracking after `[` chars by not filtering params in registered shortcodes. This will cause escaped shortcodes and their params to become texturized if not registered.
* Registered shortcode params will never be texturized, even when escaped.
* Move all tests involving unregistered shortcodes to a new and improved unit.
* Update one test involving HTML within shortcode params.

Props miqrogroove.
See #29557.

Built from https://develop.svn.wordpress.org/trunk@29748


git-svn-id: http://core.svn.wordpress.org/trunk@29520 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-09-17 15:14:17 +00:00
Scott Taylor 3ca4223a00 After [29197], use `! empty()` instead of `isset()`. Don't call `has_shortcode()` internally twice if it's true.
Props kovshenin.
Fixes #26343.

Built from https://develop.svn.wordpress.org/trunk@29207


git-svn-id: http://core.svn.wordpress.org/trunk@28991 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-07-17 17:38:13 +00:00
Scott Taylor 1292ee0151 Make `has_shortcode()` recursive/work for nested shortcodes.
Adds unit test.

Props katzwebdesign.
Fixes #26343.

Built from https://develop.svn.wordpress.org/trunk@29197


git-svn-id: http://core.svn.wordpress.org/trunk@28981 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-07-16 22:05:17 +00:00
Scott Taylor 947aa04900 Update the inline docs for `add_shortcode()` to eliminate suggestion to use `extract()`.
See #22400.

Built from https://develop.svn.wordpress.org/trunk@28413


git-svn-id: http://core.svn.wordpress.org/trunk@28240 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-15 03:28:15 +00:00
Andrew Nacin 5468377d3e Bail early from shortcode functions if no delimiter is present.
This is a significant performance improvement for processing content without shortcodes, and only the slightest hit when content contains shortcodes (which must then undergo processing anyway). Performance results on the ticket.

props TobiasBg.
fixes #23855.

Built from https://develop.svn.wordpress.org/trunk@27394


git-svn-id: http://core.svn.wordpress.org/trunk@27242 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-04 07:11:13 +00:00
Drew Jaynes cd8cedc40d First there were two, and now there are three -- in the @since versions that came before and that shall be. And so it will be, says nacin.
Props JustinSainton, SergeyBiryukov, DrewAPicture.
Fixes #26713.

Built from https://develop.svn.wordpress.org/trunk@26868


git-svn-id: http://core.svn.wordpress.org/trunk@26754 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-12-24 18:57:12 +00:00
Andrew Nacin 70fd806759 Revert r25824:25875 from the core.svn.wordpress.org repository.
These commits were accidentally re-synced commits from develop.svn.wordpress.org due to a race condition. Thankfully, the history of this repository matters fairly little. It also happened only for trunk.


git-svn-id: http://core.svn.wordpress.org/trunk@25876 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-25 02:29:52 +00:00
Andrew Nacin 8ae8e01b67 Remove the old wp_auto_updates_maybe_update cron event. Schedule the new wp_maybe_auto_update event at 7 a.m. and 7 p.m. in the site's timezone.
see #27704.

Built from https://develop.svn.wordpress.org/trunk@25825


git-svn-id: http://core.svn.wordpress.org/trunk@25825 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-24 22:53:14 +00:00
Ryan Boren b87d4b77e5 Pinking shears
Built from https://develop.svn.wordpress.org/trunk@25880


git-svn-id: http://core.svn.wordpress.org/trunk@25792 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-23 14:38:10 +00:00
Sergey Biryukov c227a3d78a Inline documentation for hooks in wp-includes/shortcodes.php.
props natejacobs.
see #25229.
Built from https://develop.svn.wordpress.org/trunk@25423


git-svn-id: http://core.svn.wordpress.org/trunk@25348 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-09-13 09:02:09 +00:00
Andrew Nacin 3139a0451e Variables passed by reference do not need to be set first.
props kovshenin.
see #24222.



git-svn-id: http://core.svn.wordpress.org/trunk@24129 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-04-29 14:48:31 +00:00
Mark Jaquith 53d12e91bc Introduce [audio] and [video] shortcodes, and use MediaElement.js to play them.
props wonderboymusic. see #23282.

git-svn-id: http://core.svn.wordpress.org/trunk@23729 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-03-16 05:25:44 +00:00
Andrew Nacin c3a174becd Add shortcode_atts_$shortcode filter for when the name of the shortcode is passed to shortcode_atts(). props coffee2code. fixes #15155.
git-svn-id: http://core.svn.wordpress.org/trunk@23626 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-03-06 20:07:40 +00:00
Jon Cave df39c7be71 Update shortcode regular expression commentary. See #17657.
git-svn-id: http://core.svn.wordpress.org/trunk@22401 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-11-06 14:47:33 +00:00
Ryan Boren 3757d63f6b Allow hyphens in shortcode names.
Props kovshenin, solarissmoke, aaroncampbell
fixes #17657


git-svn-id: http://core.svn.wordpress.org/trunk@22382 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-11-05 22:27:36 +00:00
Andrew Nacin ab5878259e Add a comment to get_shortcode_regex() mentioning its near clones elsewhere. see #21996.
git-svn-id: http://core.svn.wordpress.org/trunk@22005 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-09-26 01:16:31 +00:00
ryan e3b46b25d3 Lose EOF ?>. Clean up EOF newlines. fixes #12307
git-svn-id: http://svn.automattic.com/wordpress/trunk@19712 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-01-08 17:01:11 +00:00
ryan 83b131f8e3 User lowercase true, false, null instead of uppercase. Props c3mdigital, mfields. fixes #16302
git-svn-id: http://svn.automattic.com/wordpress/trunk@19687 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-01-05 20:50:54 +00:00
ryan 80351b789d Avoid preg backtrack limit errors with large posts when processing shortcodes. Props mdawaffe. fixes #15600
git-svn-id: http://svn.automattic.com/wordpress/trunk@18952 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-10-12 16:50:30 +00:00
duck_ 2f51b9be0d Fix typos in documentation (wp-includes/[i-z]). See #18560.
git-svn-id: http://svn.automattic.com/wordpress/trunk@18639 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-09-05 19:08:15 +00:00
markjaquith e0872e840c Make it obvious that do_shortcode_tag passes the tag as the third parameter. plus code spacing cleanup.
git-svn-id: http://svn.automattic.com/wordpress/trunk@12750 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2010-01-17 22:51:15 +00:00
markjaquith f4ae37b9f1 Do not destroy characters surrounding shortcodes in strip_shortcodes(). fixes #10326
git-svn-id: http://svn.automattic.com/wordpress/trunk@12206 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2009-11-18 08:12:05 +00:00
ryan e8b6fe7347 Trim trailing whitespace
git-svn-id: http://svn.automattic.com/wordpress/trunk@10810 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2009-03-18 02:43:45 +00:00
westi 56436d1ffc Fix regression in shortcode behaviour. Fixes #9238 props tellyworth.
git-svn-id: http://svn.automattic.com/wordpress/trunk@10658 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2009-02-27 17:01:59 +00:00
westi e5003996e3 Introduce a simple mechanism for escaping shortcodes by doubling the [[]]. Fixes #6518 props tellyworth.
git-svn-id: http://svn.automattic.com/wordpress/trunk@10576 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2009-02-15 16:01:14 +00:00