From fc884dc7ec3d55377b83bd4cccc5eeae79690f9c Mon Sep 17 00:00:00 2001 From: Boone Gorges Date: Sat, 12 Sep 2015 20:58:23 +0000 Subject: [PATCH] Allow `setup_postdata()` to accept a post ID. Previously, it accepted only a full post object. Props sc0ttclark, mordauk, wonderboymusic. Fixes #30970. Built from https://develop.svn.wordpress.org/trunk@34089 git-svn-id: http://core.svn.wordpress.org/trunk@34057 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/query.php | 16 +++++++++++++--- wp-includes/version.php | 2 +- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/wp-includes/query.php b/wp-includes/query.php index ba9ac64d44..5b36393ac7 100644 --- a/wp-includes/query.php +++ b/wp-includes/query.php @@ -4616,6 +4616,7 @@ class WP_Query { * Set up global post data. * * @since 4.1.0 + * @since 4.4.0 Added the ability to pass a post ID to `$post`. * * @global int $id * @global WP_User $authordata @@ -4627,12 +4628,20 @@ class WP_Query { * @global int $more * @global int $numpages * - * @param WP_Post $post Post data. + * @param WP_Post|object|int $post WP_Post instance or Post ID/object. * @return true True when finished. */ public function setup_postdata( $post ) { global $id, $authordata, $currentday, $currentmonth, $page, $pages, $multipage, $more, $numpages; + if ( ! ( $post instanceof WP_Post ) ) { + $post = get_post( $post ); + } + + if ( ! $post ) { + return; + } + $id = (int) $post->ID; $authordata = get_userdata($post->post_author); @@ -4701,7 +4710,7 @@ class WP_Query { public function reset_postdata() { if ( ! empty( $this->post ) ) { $GLOBALS['post'] = $this->post; - setup_postdata( $this->post ); + $this->setup_postdata( $this->post ); } } } @@ -4769,10 +4778,11 @@ function wp_old_slug_redirect() { * Set up global post data. * * @since 1.5.0 + * @since 4.4.0 Added the ability to pass a post ID to `$post`. * * @global WP_Query $wp_query * - * @param object $post Post data. + * @param WP_Post|object|int $post WP_Post instance or Post ID/object. * @return bool True when finished. */ function setup_postdata( $post ) { diff --git a/wp-includes/version.php b/wp-includes/version.php index 0019ac6a5b..0e069baf72 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '4.4-alpha-34088'; +$wp_version = '4.4-alpha-34089'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.