Ich habe bereits eine Funktion, bei der ein Benutzer ein Formular sendet und einen benutzerdefinierten Beitrag erstellt ...
<?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');
}
Ich möchte überprüfen, ob der Titel des benutzerdefinierten Beitrags vorhanden ist. Wenn dies NICHT der Fall ist, erstellen Sie den Beitrag mit der Nummer 1 im Metafeld. Wenn er vorhanden ist, fügen Sie einfach 1 zum Metafeld hinzu
post-meta
wp-insert-post
marctain
quelle
quelle
AND post_status = 'publish'
zur anfänglichen Abfrage hinzufügen , um nur veröffentlichte Beiträge zurückzugeben.WHERE post_title = %d
sollteWHERE post_title = %s
HeaddeskEine aktuellere Methode kann die folgende
post_exists()
Funktion verwenden:quelle
$post_id = post_exists[...]
ternäre Operator in ein zerlegt werden if / else, um das Metafeld zu erhöhen.Sie können die Funktion get_page_by_title () von WordPress verwenden:
quelle
@ Tim Hallman nette Antwort. Verwenden Sie die Funktion post_exists () , um zu überprüfen, ob ein Beitrag vorhanden ist oder nicht. Weitere Informationen finden Sie unter https://developer.wordpress.org/reference/
quelle
Sie können dies anhand der ID tun
quelle
post_exists and
wp_insert_post` wie in der Antwort von @ TimHallman. Je mehr unnötiger Code Sie einführen, desto mehr Änderungen treten bei der Einführung von Fehlern oder bei längerfristigen Wartungsproblemen auf.WordPress prüft, ob der Beitrag nach Titel existiert
quelle