web-dev-qa-db-fra.com

Empêcher que le titre de poste vide sur le formulaire soit soumis via un poste frontal (wp_insert_post_)

Je crée un message depuis le début utilisant (raccourci pour plus de concision);

if (empty($_POST['my_title'])){  
    echo 'error: please insert a title';
} else {  
    $title =  $_POST['my_title'];
} 

$new_post = array(
'post_title'    => $title,
'post_status'   => 'publish',
'post_type'     => 'post'

$pid = wp_insert_post($new_post);   

Si aucun titre n'est présent sur , soumettez , le formulaire renvoie alors le message d'erreur.

erreur: veuillez insérer un titre

Cependant, WordPress insère toujours le message avec un titre de (pas de titre) .

Existe-t-il un moyen de valider PHP simple pour empêcher wp_insert_post d’accepter une valeur vide? (sans utiliser Javascript) .

IMAGE

2
userabuser

Mettez simplement l'appel wp_insert_post dans votre contrôle conditionnel pour qu'il ne soit appelé que si le titre de l'article n'est pas vide, quelque chose comme ceci:

if (empty($_POST['my_title'])){  
    echo 'error: please insert a title';
} else {  
    $title =  $_POST['my_title'];
    $new_post = array(
     'post_title'    => $title,
     'post_status'   => 'publish',
     'post_type'     => 'post');
    $pid = wp_insert_post($new_post);  
} 
4
Bainternet

Ou vous pourriez simplement

return;

après l'écho de l'erreur. :)

2