diff --git src/wp-includes/post.php src/wp-includes/post.php
index ae688a3470..46ac018dbe 100644
|
|
function get_available_post_mime_types( $type = 'attachment' ) { |
7025 | 7025 | $types = $wpdb->get_col( $wpdb->prepare( "SELECT DISTINCT post_mime_type FROM $wpdb->posts WHERE post_type = %s", $type ) ); |
7026 | 7026 | return $types; |
7027 | 7027 | } |
| 7028 | |
| 7029 | /** |
| 7030 | * Determine if a post is private or not. |
| 7031 | * |
| 7032 | * If the post is not found, it will return false. If the post is an attachment, |
| 7033 | * the parent post status will be checked. |
| 7034 | * |
| 7035 | * @since 5.3 |
| 7036 | * |
| 7037 | * @see get_post_status() |
| 7038 | * @link https://core.trac.wordpress.org/ticket/37462 |
| 7039 | * |
| 7040 | * @param int|WP_Post $post Optional. Post ID or post object. Defaults to global $post. |
| 7041 | * @return bool True if the post is private, false if not or if the post is not found. |
| 7042 | */ |
| 7043 | function is_private_post( $post = null ) { |
| 7044 | if ( 'private' === get_post_status( $post ) ) { |
| 7045 | return true; |
| 7046 | } |
| 7047 | |
| 7048 | return false; |
| 7049 | } |
| 7050 | No newline at end of file |
diff --git tests/phpunit/tests/post.php tests/phpunit/tests/post.php
index 6ef0c8449f..4c1b7a971f 100644
|
|
class Tests_Post extends WP_UnitTestCase { |
1394 | 1394 | function filter_pre_wp_unique_post_slug( $default, $slug, $post_ID, $post_status, $post_type, $post_parent ) { |
1395 | 1395 | return 'override-slug-' . $post_type; |
1396 | 1396 | } |
| 1397 | |
| 1398 | /** |
| 1399 | * @ticket 37462 |
| 1400 | */ |
| 1401 | function test_is_private_post() { |
| 1402 | $post_id_private = $this->factory->post->create( |
| 1403 | array( |
| 1404 | 'title' => 'An example', |
| 1405 | 'post_status' => 'private', |
| 1406 | 'post_type' => 'post', |
| 1407 | ) |
| 1408 | ); |
| 1409 | |
| 1410 | $post_id_published = $this->factory->post->create( |
| 1411 | array( |
| 1412 | 'title' => 'An example', |
| 1413 | 'post_status' => 'publish', |
| 1414 | 'post_type' => 'page', |
| 1415 | ) |
| 1416 | ); |
| 1417 | |
| 1418 | $this->assertTrue( is_private_post( $post_id_private ) ); |
| 1419 | $this->assertFalse( is_private_post( $post_id_published ) ); |
| 1420 | } |
| 1421 | |
1397 | 1422 | } |