Paramètres

$title

(string) (Requis) Titre du poste.

$content

(string) (Optionnel) Contenu du poste.

Valeur par défaut : ''

$date

(string) (Optionnel) Date du poste.

Valeur par défaut : ''

$type

(string) (Optionnel) Type du poste.

Valeur par défaut : ''

Retourne

(int) Id du poste s'il existe, 0 autrement.

Structure de la fonction post_exists()

Définie dans le fichier wp-admin/includes/post.php à la ligne 768 :

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;
}

Fonctions utilisées par post_exists()

wp_unslash()

Supprime les slashes d'une chaîne ou d'un tableau de chaînes.

sanitize_post_field()

Nettoie le champ d'un poste basé sur le contexte.

Où trouver la fonction post_exists() dans le CMS Wordpress

Exemple

$fount_post = post_exists( "My Post Title",'','','');
echo $fount_post ? "Found post at id #$fount_post" : "Can't find post!";

$fount_post = post_exists( "My Post Title",'','','news');
echo $fount_post ? "Found post at id #$fount_post" : "Can't find post!";

Sources

Codex Wordpress : post_exists()

Autres fonctions dans le même fichier : wp-admin/includes/post.php

Retour