Verifică dacă postarea există
18 dec. 2016, 12:30:23
Vizualizări: 14.4K
Voturi: 1
Cum pot verifica dacă o postare cu titlul, de exemplu, "Vreme" există? Dacă nu există, vreau să o creez.
function such_post_exists($title) {
global $wpdb;
$p_title = wp_unslash( sanitize_post_field( 'post_title', $title, 0, 'db' ) );
if ( !empty ( $title ) ) {
return (int) $wpdb->query("SELECT FROM $wpdb->posts WHERE post_title = $p_title");
}
return 0;
}

kilogram
149
Toate răspunsurile la întrebare
2
Comentarii
0
Dacă postarea nu există, creează-o... Dacă există, actualizează-o.
$post_title = "Acest Titlu Minunat";
$post_content = "Conținutul meu despre ceva interesant.";
$post_status = "publish"; //publicat, draft, etc
$post_type = "page"; // sau orice alt tip de postare dorit
/* Încearcă să găsești ID-ul postării după titlu dacă există */
$found_post_title = get_page_by_title( $post_title, OBJECT, $post_type );
$found_post_id = $found_post_title->ID;
/**********************************************************
** Verifică dacă pagina nu există, dacă da, creează o nouă postare
************************************************************/
if ( FALSE === get_post_status( $found_post_id ) ):
$post_args = array(
'post_title' => $post_title,
'post_type' => $post_type,
'post_content'=> $post_content,
'post_status' => $post_status,
//'post_author' => get_current_user_id(),
/* Dacă ai câmpuri meta în care să introduci date */
'meta_input' => array(
'meta_key1' => 'valoarea mea',
'meta_key2' => 'cealaltă valoare',
),
);
/* Adaugă o nouă postare wp în baza de date, returnează ID-ul postării */
$returned_post_id = wp_insert_post( $post_args );
/* Actualizează șablonul paginii doar dacă folosești "page" ca post_type */
update_post_meta( $returned_post_id, '_wp_page_template', 'my-page-template.php' );
/* Adaugă valori în câmpurile meta. Funcționează cu CÂMPURI PERSONALIZATE ACF!! */
$field_key = "Cheia_Mea_de_Câmp";
$value = "valoarea mea personalizată";
update_field( $field_key, $value, $returned_post_id );
$field_key = "Cheia_Mea_de_Alt_Câmp";
$value = "cealaltă valoare personalizată";
update_field( $field_key, $value, $returned_post_id );
/* Salvează o valoare de checkbox sau select */
// $field_key = "Cheia_Mea_de_Câmp";
// $value = array("roșu", "albastru", "galben");
// update_field( $field_key, $value, $returned_post_id );
/* Salvează o valoare în câmpul repetor */
// $field_key = "Cheia_Mea_de_Câmp";
// $value = array(
// array(
// "ss_nume" => "Foo",
// "ss_tip" => "Bar"
// )
// );
// update_field( $field_key, $value, $returned_post_id );
/* Afișează un răspuns! */
echo "<span class='pg-new'><strong>". $post_title . " Creat!</strong></span><br>";
echo "<a href='".esc_url( get_permalink($returned_post_id) )."' target='_Blank'>". $post_title . "</a><p>";
else:
/***************************
** Dacă POSTAREA EXISTĂ, actualizează-o
****************************/
/* Actualizează postarea */
$update_post_args = array(
'ID' => $found_post_id,
'post_title' => $post_title,
'post_content' => $post_content,
);
/* Actualizează postarea în baza de date */
wp_update_post( $update_post_args );
/* Actualizează valorile în câmpurile meta */
$field_key = "Cheia_Mea_de_Câmp";
$value = "valoarea mea personalizată";
update_field( $field_key, $value, $found_post_id );
$field_key = "Cheia_Mea_de_Alt_Câmp";
$value = "cealaltă valoare personalizată";
update_field( $field_key, $value, $found_post_id );
/* Afișează un răspuns! */
echo "<span class='pg-update'><strong>". $post_title . " Actualizat!</strong></span><br>";
echo "<a href='".esc_url( get_permalink($found_post_id) )."' target='_Blank'>Vizualizează</a> | <a href='post.php?post=".$found_post_id."&action=edit'>". $post_title . "</a><p>";
endif;

samjco-com
599
10 feb. 2019 23:56:14
Întrebări similare
1
răspunsuri
2
răspunsuri
1
răspunsuri