Я пытаюсь добавить сообщения в wordpress с сервера rets с помощью PHRETS. К сожалению, дубликаты сообщений добавляются. Я использовал запрос WP, чтобы проверить существующее сообщение, используя мета-ключ и значение. Этот код работает хорошо, когда я пытаюсь добавить 10 или 50 сообщений, но когда я устанавливаю ограничение до 4000, он начинает добавлять повторяющиеся сообщения. Я запустил этот код столько раз и много раз промывал базу данных. Вот пример кода:Почему Duplicate posts добавляются при получении данных с сервера RETS?
$query = "(922=MIAMI), (246=A)";
$search = $rets->SearchQuery("Property", $class, $query, array("SystemName" => 1, 'Limit' =>4550));
if ($rets->NumRows($search) > 0) {
$fields_order = $rets->SearchGetFields($search);
while ($record = $rets->FetchRow($search)) {
foreach ($fields_order as $fo) {
if ($fo == 'sysid') { $systemid = $record[$fo] ; }
if ($fo == '881') { $saddress = isset($record[$fo]) ? $record[$fo] : ""; }
if ($fo == '214') { $sremarks = isset($record[$fo]) ? $record[$fo] : ""; }
}
$porpertytitle = $saddress;
$args = array(
'numberposts' => -1,
'post_type' => 'property',
'post_status' => 'publish',
'meta_key' =>'sysid',
'meta_value' => $systemid
);
$the_query = new WP_Query($args);
if($the_query->have_posts()) {
while ($the_query->have_posts()) {
$the_query->the_post();
unset($systemid);
unset($args);
}
} else {
$my_listing = array(
'post_title' => $porpertytitle,
'post_type' => 'property',
'post_content' => $sremarks,
'post_status' => 'publish',
);
$listing_post_id = wp_insert_post($my_listing);
if($listing_post_id > 0) {
update_post_meta($listing_post_id, 'sysid', $systemid);
}
unset($systemid);
unset($args);
unset($listing_post_id);
}
wp_reset_postdata();
}
}
Извините за этот длинный код. Но я также попытался отключить переменные после каждого цикла, но не работал.
Содержит ли он дубликаты всех записей или несколько? Можете ли вы разместить несколько не дублированных записей и записей, которые были дублированы. Пожалуйста, напишите полные полные записи, а не частичные. –
Я не мог сказать, что он дублирует все записи или несколько, потому что он не соответствует шаблону. Некоторое время он дублирует все сообщения и некоторое время только несколько сообщений с тем же запросом и тем же кодом. Я думаю, что проблема заключается в том, если и хотя условие выше кода. потому что я думаю, что Wp_Query в порядке. И проблема в другом! –
Я очень сомневаюсь, что для дубликатов нет образца. Я бы предложил выбрать несколько записей, которые были дублированы и пройти через код, чтобы выяснить, что вызывает дублирование. –