[wp-trac] [WordPress Trac] #37406: Add ability to specify post_type in post_exists function - post.php

WordPress Trac noreply at wordpress.org
Tue Jul 19 00:36:34 UTC 2016


#37406: Add ability to specify post_type in post_exists function - post.php
-------------------------------+-----------------------------
 Reporter:  sgarza             |      Owner:
     Type:  enhancement        |     Status:  new
 Priority:  normal             |  Milestone:  Awaiting Review
Component:  Posts, Post Types  |    Version:  4.5.3
 Severity:  normal             |   Keywords:
  Focuses:                     |
-------------------------------+-----------------------------
 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
 <?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;
 }
 }}}

--
Ticket URL: <https://core.trac.wordpress.org/ticket/37406>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list