J'ai déjà une fonction où un utilisateur soumet un formulaire et crée un message personnalisé ...
<?php $postTitle = $_POST['post_title'];
$submit = $_POST['submit'];
if(isset($submit)){
global $user_ID;
$new_post = array(
'post_title' => $postTitle,
'post_content' => '',
'post_status' => 'publish',
'post_date' => date('Y-m-d H:i:s'),
'post_author' => '',
'post_type' => 'stuff',
'post_category' => array(0)
);
$post_id = wp_insert_post($new_post);
add_post_meta($post_id, 'times', '1');
}
Je veux vérifier si le titre de la publication personnalisée existe, puis si ce n'est PAS le cas, continuer et créer la publication avec un # 1 dans le champ méta, et si elle existe, ajouter simplement 1 au champ méta
post-meta
wp-insert-post
marctain
la source
la source
AND post_status = 'publish'
à la requête initiale pour renvoyer uniquement les publications publiées.WHERE post_title = %d
devrait lireWHERE post_title = %s
headdeskUne méthode plus mise à jour peut utiliser la
post_exists()
fonction comme ceci:la source
$post_id = post_exists[...]
opérateur ternaire doit être décomposé en un if / else afin d'incrémenter le méta-champ.Vous pouvez utiliser la fonction get_page_by_title () de WordPress:
la source
@Tim Hallman belle réponse. Utilisez la fonction post_exists () pour vérifier si le post existe ou non. Plus de détails sur https://developer.wordpress.org/reference/
la source
Vous pouvez le faire par ID
la source
post_exists and
wp_insert_post` comme dans la réponse de @ TimHallman. Plus vous introduisez de code inutile, plus vous risquez d'erreurs ou de problèmes de maintenance à long terme.WordPress vérifie si la publication existe par titre
la source