Opened 9 years ago
Closed 6 years ago
#37406 closed enhancement (fixed)
Add ability to specify post_type in post_exists function - post.php
Reported by: |
|
Owned by: |
|
---|---|---|---|
Milestone: | 5.2 | Priority: | low |
Severity: | normal | Version: | 4.5.3 |
Component: | Posts, Post Types | Keywords: | has-patch has-unit-tests commit |
Focuses: | Cc: |
Description
Currently post_exists()
has no way of refining the query down to a particular post type. Adding a fourth argument to specify a post type would make this function more useful for custom post type development.
<?php function post_exists($title, $content = '', $date = '', $type = '') { global $wpdb; $post_title = wp_unslash( sanitize_post_field( 'post_title', $title, 0, 'db' ) ); $post_content = wp_unslash( sanitize_post_field( 'post_content', $content, 0, 'db' ) ); $post_date = wp_unslash( sanitize_post_field( 'post_date', $date, 0, 'db' ) ); $post_type = wp_unslash( sanitize_post_field( 'post_type', $type, 0, 'db' ) ); $query = "SELECT ID FROM $wpdb->posts WHERE 1=1"; $args = array(); if ( !empty ( $date ) ) { $query .= ' AND post_date = %s'; $args[] = $post_date; } if ( !empty ( $title ) ) { $query .= ' AND post_title = %s'; $args[] = $post_title; } if ( !empty ( $content ) ) { $query .= ' AND post_content = %s'; $args[] = $post_content; } if ( !empty ( $type ) ) { $query .= ' AND post_type = %s'; $args[] = $post_type; } if ( !empty ( $args ) ) return (int) $wpdb->get_var( $wpdb->prepare($query, $args) ); return 0; }
Attachments (5)
Change History (17)
#3
@
8 years ago
- Keywords has-unit-tests added; needs-unit-tests removed
Added two tests in 37406.2.test.patch regarding the post type modifications in 37406.patch.
#4
@
8 years ago
I wonder if this check:
if ( !empty ( $type ) && post_type_exists( $type ) ) { $query .= ' AND post_type = %s'; $args[] = $post_type; }
should be applied in 37406.patch, to make sure the post type exists?
But it feels unnecessary...
#5
@
7 years ago
- Keywords needs-refresh added
- Milestone changed from Awaiting Review to Future Release
- Priority changed from normal to low
Needs some docs improvements (adding stuff like @since
) and a refresh to adhere to coding standards. Otherwise this looks reasonable.
#6
@
7 years ago
- Keywords needs-refresh removed
In 37406.3.diff:
- Refreshed and combined the patch and tests into a single patch.
- Added
@since
in the docBlock. - Adjusted according to the WPCS.
#7
@
7 years ago
- Milestone changed from Future Release to 5.0
- Owner set to swissspidy
- Status changed from new to accepted
#10
@
6 years ago
@swissspidy are you still interested in shepherding this one? Are you able to handle it in time for 5.2 beta 1 in a few days?
Note: See
TracTickets for help on using
tickets.
Added suggested patch