[*] Извлечение данных API: я получаю данные, используя WP_Remote_post и проанализируйте ответ json. < /li>
Синхо В WordPress: я создаю или обновляю посты типа checica_car, устанавливая метаданные, таксономии и изображения. Функция для печати доступных типов сообщений (get_post_types ()), а ehecica_car - это перечисление, я позвонил в ehearica_sync_products () вручную в functions.php, но данные по-прежнему не появляются в списках ehica. Конец листинга? function vehica_sync_products() {
require_once(ABSPATH . 'wp-admin/includes/media.php');
require_once(ABSPATH . 'wp-admin/includes/file.php');
require_once(ABSPATH . 'wp-admin/includes/image.php');
$api_products = vehica_fetch_api_products();
if (!$api_products) {
error_log('No data received from API');
return;
}
foreach ($api_products as $product) {
$slug = sanitize_title($product['URL Slug']);
$existing_post = get_page_by_path($slug, OBJECT, 'vehica_car');
$post_data = [
'post_title' => sanitize_text_field($product['Title']),
'post_content' => wp_kses_post($product['Content'] ?? 'No description available.'),
'post_type' => 'vehica_car',
'post_status' => 'publish',
'post_name' => $slug,
'meta_input' => [
'vehica_price' => floatval($product['Vehica Currency 6656 2384'] ?? 0),
'vehica_model' => sanitize_text_field($product['Model'] ?? ''),
'vehica_year' => intval($product['Tahun'] ?? 2023),
'vehica_mileage' => floatval($product['Jarak Tempuh'] ?? 0),
'vehica_fuel_type' => sanitize_text_field($product['Jenis Bahan Bakar'] ?? ''),
'vehica_transmission'=> sanitize_text_field($product['Transmisi'] ?? ''),
'vehica_condition' => sanitize_text_field($product['Kondisi'] ?? ''),
]
];
if ($existing_post) {
$post_data['ID'] = $existing_post->ID;
$post_id = wp_update_post($post_data, true);
} else {
$post_id = wp_insert_post($post_data, true);
}
if (!is_wp_error($post_id) && !empty($product['Galeri'])) {
$gallery = explode(', ', $product['Galeri']);
if (!empty($gallery[0])) {
$image_id = media_sideload_image($gallery[0], $post_id, '', 'id');
if (!is_wp_error($image_id)) {
set_post_thumbnail($post_id, $image_id);
}
}
}
}
}
// Debugging post types
add_action('init', function() {
$post_types = get_post_types();
error_log(print_r($post_types, true));
});
// Running sync manually
add_action('init', function() {
vehica_sync_products();
});
< /code>
Дополнительный контекст: < /p>
- Я включил Debug.log и предоставлю скриншоты журналов. < /li>
Посты вставлены, и они появляются на панели администратора WordPress под "Checica Cars". Efhica.
Подробнее здесь: https://stackoverflow.com/questions/794 ... in-listing
Мобильная версия