Opened 10 years ago
Closed 8 years ago
#37406 closed enhancement (fixed)
Add ability to specify post_type in post_exists function - post.php
| Reported by: | sgarza | Owned by: | swissspidy |
|---|---|---|---|
| Priority: | low | Milestone: | 5.2 |
| Component: | Posts, Post Types | Version: | 4.5.3 |
| Severity: | normal | Keywords: | has-patch has-unit-tests commit |
| Cc: | Focuses: |
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
@
9 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
@
9 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
@
9 years ago
- Keywords needs-refresh added
- Milestone Awaiting Review → Future Release
- Priority normal → low
Needs some docs improvements (adding stuff like @since) and a refresh to adhere to coding standards. Otherwise this looks reasonable.
#6
@
9 years ago
- Keywords needs-refresh removed
In 37406.3.diff:
- Refreshed and combined the patch and tests into a single patch.
- Added
@sincein the docBlock. - Adjusted according to the WPCS.
#10
@
8 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?
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)
Added suggested patch