diff --git a/src/wp-includes/link-template.php b/src/wp-includes/link-template.php index 6b05040622..3ddcc49e15 100644 --- a/src/wp-includes/link-template.php +++ b/src/wp-includes/link-template.php @@ -152,7 +152,7 @@ function wp_force_plain_post_permalink( $post = null, $sample = null ) { * * @param int|WP_Post $post Optional. Post ID or post object. Default is the global `$post`. * @param bool $leavename Optional. Whether to keep post name or page name. Default false. - * @return string|false The permalink URL or false if post does not exist. + * @return string|false The permalink URL. False if the post does not exist. */ function get_the_permalink( $post = 0, $leavename = false ) { return get_permalink( $post, $leavename ); @@ -165,7 +165,7 @@ function get_the_permalink( $post = 0, $leavename = false ) { * * @param int|WP_Post $post Optional. Post ID or post object. Default is the global `$post`. * @param bool $leavename Optional. Whether to keep post name or page name. Default false. - * @return string|false The permalink URL or false if post does not exist. + * @return string|false The permalink URL. False if the post does not exist. */ function get_permalink( $post = 0, $leavename = false ) { $rewritecode = array( @@ -314,15 +314,15 @@ function get_permalink( $post = 0, $leavename = false ) { * @param int|WP_Post $post Optional. Post ID or post object. Default is the global `$post`. * @param bool $leavename Optional. Whether to keep post name. Default false. * @param bool $sample Optional. Is it a sample permalink. Default false. - * @return string|WP_Error The post permalink. + * @return string|false The post permalink URL. False if the post does not exist. */ function get_post_permalink( $post = 0, $leavename = false, $sample = false ) { global $wp_rewrite; $post = get_post( $post ); - if ( is_wp_error( $post ) ) { - return $post; + if ( ! $post ) { + return false; } $post_link = $wp_rewrite->get_extra_permastruct( $post->post_type ); @@ -3923,8 +3923,8 @@ function get_edit_profile_url( $user_id = 0, $scheme = 'admin' ) { * @since 4.6.0 * * @param int|WP_Post $post Optional. Post ID or object. Default is global `$post`. - * @return string|false The canonical URL, or false if the post does not exist or has not - * been published yet. + * @return string|false The canonical URL. False if the post does not exist + * or has not been published yet. */ function wp_get_canonical_url( $post = null ) { $post = get_post( $post ); diff --git a/tests/phpunit/tests/link/getPostPermalink.php b/tests/phpunit/tests/link/getPostPermalink.php new file mode 100644 index 0000000000..16d1da0bea --- /dev/null +++ b/tests/phpunit/tests/link/getPostPermalink.php @@ -0,0 +1,18 @@ +post->create(); + + $this->assertIsString( get_post_permalink( $post ) ); + } + + public function test_get_post_permalink_should_return_false_for_non_existing_post() { + $this->assertFalse( get_post_permalink( -1 ) ); + } + +}