Go to file
Boone Gorges 30c21d2031 Posts: Avoid the use of globals in get_the_content() and related functions.
This changeset introduces `$post` parameters to `get_the_content()` and
`wp_trim_excerpt()`. When a `$post` object is passed to one of these functions,
the functions will operate on the data from that object, rather than from the
post globals (`$authordata`, `$page`, etc). This ensures that the functions work
in a predictable manner when used outside of the regular post loop.

The global-mismatch problem is surfaced in cases where `get_the_excerpt()` is
called outside of the post loop, on posts that don't have a defined excerpt. In
these cases, the post globals - used to generate a fallback excerpt - may refer
to the incorrect object, resulting in PHP notices or other unpredictable
behavior. See #36934 for a related issue.

Props spacedmonkey, kraftbj, Shital Patel.
Fixes #42814.

git-svn-id: https://develop.svn.wordpress.org/trunk@44941 602fd350-edb4-49c9-b593-d223f7449a82
2019-03-20 15:48:46 +00:00
src Posts: Avoid the use of globals in get_the_content() and related functions. 2019-03-20 15:48:46 +00:00
tests Posts: Avoid the use of globals in get_the_content() and related functions. 2019-03-20 15:48:46 +00:00
tools Block Editor: Update the WordPress Packages from Gutenberg 5.2. 2019-03-07 09:08:38 +00:00
.editorconfig General: Instruct file editors not to trim trailing whitespace in markdown files. 2018-03-20 22:14:53 +00:00
.gitignore Build/Test Tools: Update .gitignore to exclude twentynineteen and twentysixteen. 2019-01-09 13:44:30 +00:00
.jshintrc Build tools: Fix the travis:js build. 2018-12-24 13:53:11 +00:00
.npmrc Once upon a midnight dreary, while I coded, weak and weary, 2018-05-23 10:04:22 +00:00
.nvmrc Once upon a midnight dreary, while I coded, weak and weary, 2018-05-23 10:04:22 +00:00
.travis.yml Build: Add PHP 7.4 to the Travis build. 2019-03-06 21:01:53 +00:00
appveyor.yml Build Tools: Don't send AppVeyor notifications on Slack on repeated successful builds. 2019-01-15 05:48:46 +00:00
composer.json Build Tools: Upgrade WPCS to 2.0.0. 2019-01-18 02:14:24 +00:00
composer.lock Build Tools: Upgrade WPCS to 2.0.0. 2019-01-18 02:14:24 +00:00
Gruntfile.js Build: Remove source map from jquery.form.min.js. 2019-02-14 00:06:39 +00:00
jsdoc.conf.json Build Tools: Fix JSDoc configuration include paths. 2018-06-14 12:45:06 +00:00
package-lock.json Block Editor: Update the WordPress Packages from Gutenberg 5.2. 2019-03-07 09:08:38 +00:00
package.json Block Editor: Update the WordPress Packages from Gutenberg 5.2. 2019-03-07 09:08:38 +00:00
phpcs.xml.dist Coding Standards: Upgrade WPCS to 1.2.1. 2019-01-12 06:40:16 +00:00
phpunit.xml.dist Coding Standards: Replace spaced indentation sections of phpunit.xml.dist, multisite.xml, and build.xml with tabs. 2019-01-28 17:20:06 +00:00
webpack.config.js Build tools: Allow building WordPress to src. 2018-12-24 13:28:22 +00:00
wp-cli.yml Build/Tests: Default to running unit tests from src. 2019-01-09 10:09:02 +00:00
wp-config-sample.php General: Replace "Happy blogging" with "Happy publishing". 2019-01-08 04:29:06 +00:00
wp-tests-config-sample.php Tests: Revert [44509]. 2019-01-09 11:13:03 +00:00