Wordpress вставить запись, если не существует и избежать дублирования - PullRequest
0 голосов
/ 17 февраля 2020

Привет! Я пытаюсь вставить данные в таблицу WordPress. Она успешно добавлена, но при каждом обновлении страницы она дублирует данные. Я хочу вставить данные, если она новая, иначе ничего не делать

foreach ( $response->data as $single_data ) {

    // post title
    $post_title    = $single_data->name; 

    global $wpdb;

    //tablename
    $tablename = $wpdb->prefix . "posts";

    $wpdb->insert($tablename,
        array(
            'post_type'  => 'vimeo_videos',
            'post_title' => $post_title,
            'post_status' => 'publish',
        ),
        array('%s', '%s', '%s')
    );


}

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Спасибо всем за ваш ответ. Я нашел решение, подобное этому, и оно прекрасно работает

foreach ($ response-> data as $ single_data) {

$post_title    = $single_data->name; 

if (!post_exists($post_title)) { // Determine if a post exists based on title, content, and date
    $post_id = array(
        'post_type'  => 'vimeo_videos',
        'post_title' => $post_title,
        'post_status' => 'publish',
     );

}
$newPostID = wp_insert_post($post_id);

}

0 голосов
/ 17 февраля 2020

Пожалуйста, попробуйте это. Я создал массив и попробовал это. Успешно вставлены данные в базу данных. Пожалуйста, сделайте это, как вы получили свой массив. Я надеюсь, что это будет полезно для вас

<code>$response = array("title"=>array("title one",'title two'));
//echo "<pre>";print_r($response);echo "
"; exit (); foreach ($ response ['title'] as $ single_data) {$ post_title = $ single_data; global $ wpdb; $ allPosts = $ wpdb- > get_results ($ wpdb-> prepare ("SELECT * FROM $ wpdb-> posts WHERE post_title LIKE"% s "", "%". $ wpdb-> esc_like ($ post_title). '%')); // echo "
";print_r($allPosts);echo "
"; exit (); if (count ($ allPosts) == 0) {$ tablename = $ wpdb-> prefix. "Posts"; $ wpdb-> insert ($ tablename, array ('post_type' = > 'vimeo_videos', 'post_title' => $ post_title, 'post_status' => 'publi sh',), массив ('% s', '% s', '% s'));} else {/ * Делай что хочешь * /}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...