gpt4 book ai didi

wordpress - 为什么从 RETS 服务器获取数据时会添加重复的帖子?

转载 作者:行者123 更新时间:2023-12-02 22:21:18 24 4
gpt4 key购买 nike

我正在尝试使用 PHRETS 从 rets 服务器在 WordPress 中添加帖子。不幸的是,正在添加重复的帖子。我已使用 WP 查询使用元键和值检查现有帖子。当我尝试添加 10 或 50 个帖子时,此代码运行良好,但当我将限制设置为 4000 时,它开始添加重复的帖子。我已经多次运行此代码并刷新数据库多次。这是一个代码示例:

$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();
}
}

抱歉这段代码很长。但我也尝试在每个循环后取消设置变量但不起作用。

最佳答案

我自己也遇到过类似的看似随机的重复问题。我最终确定问题是 RETS 服务器偏移量是从 1 开始的,而不是从 0 开始的。此外,如果您没有在请求中传递偏移量,服务器将以与您传递偏移量时不同的方式对结果进行排序。

如果您可以检查发送到服务器的请求,请查看第一个请求中是否包含 offset=1。如果它为零或缺失,您将得到第一页结果的重复分散在后续页面中,这对于 4000 页面大小来说可能会很多

关于wordpress - 为什么从 RETS 服务器获取数据时会添加重复的帖子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27812743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com