我有一个从外部数据库将数据同步到WP的功能(见下文)。这是一个计划项目的列表。更新计划时,应删除旧数据。请参阅此代码段:
$wpdb->delete(
$table,
array(
\'schedule_item_id\' => $item->id
)
)
但这并没有发生。例如,如果我有一个项目;“A”;计划在星期二下午6点,然后我将其从外部数据库中删除,并将其替换为ietm“;“B”;同时安排。WordPress应删除项目;“A”;,但事实并非如此。我看到了这两项。”;“A”;和;“B”;在时间表上$wpdb->;删除不是删除它。我是不是做错了什么?以下是完整的功能:
function sync_schedule($scheduleItems) {
global $wpdb;
foreach($scheduleItems as $item) {
if (!$item->show) { continue; }
$table = $wpdb->prefix . \'schedule_items\';
$existing_row = $wpdb->get_row($wpdb->prepare("SELECT * FROM $table WHERE schedule_item_id=%d", $item->id));
$show = get_show_post_by_id($item->show);
if (!$show) { continue; }
if (empty($existing_row) && $item->deleted == FALSE) {
$wpdb->insert(
$table,
array(
\'run_date_time\' => $item->runDateTime,
\'show_id\' => $item->show,
\'show_title\' => $show->post_title,
\'show_post_id\' => $show->ID,
\'channel_id\' => $item->channel,
\'channel_post_id\' => 0,
\'schedule_item_id\' => $item->id
)
);
} else if ($item->deleted == FALSE){
$wpdb->update(
$table,
array(
\'run_date_time\' => $item->runDateTime,
\'show_id\' => $item->show,
\'show_title\' => $show->post_title,
\'show_post_id\' => $show->ID,
\'channel_id\' => $item->channel,
\'channel_post_id\' => 99,
\'schedule_item_id\' => $item->id
),
array(
\'schedule_item_id\' => $item->id
)
);
} else {
$wpdb->delete(
$table,
array(
\'schedule_item_id\' => $item->id
)
);
}
}
}