EuropeWonder/import-tours.php

82 lines
2.8 KiB
PHP

<?php
// Vključi WordPress
require_once('../../../../wp-load.php');
// Preberi JSON datoteko
$json_file = '../../../Spletna/tours.json';
$json_data = file_get_contents($json_file);
$tours = json_decode($json_data, true);
if (!is_array($tours)) {
die('Napaka pri branju JSON datoteke');
}
// Uvozi vsako turo
foreach ($tours as $tour) {
// Preveri, če tura že obstaja
$existing_tour = get_page_by_title($tour['title'], OBJECT, 'tour');
if ($existing_tour) {
continue; // Preskoči, če tura že obstaja
}
// Pripravi podatke za novo turo
$post_data = array(
'post_title' => $tour['title'],
'post_content' => $tour['description'] ?? '',
'post_status' => 'publish',
'post_type' => 'tour'
);
// Vstavi novo turo
$post_id = wp_insert_post($post_data);
if ($post_id) {
// Dodaj meta podatke
update_post_meta($post_id, '_tour_duration', $tour['duration'] ?? '');
update_post_meta($post_id, '_tour_distance', $tour['distance'] ?? '');
update_post_meta($post_id, '_tour_category', $tour['category'] ?? '');
// Dodaj highlights in inclusions, če obstajajo
if (isset($tour['highlights'])) {
update_post_meta($post_id, '_tour_highlights', $tour['highlights']);
}
if (isset($tour['inclusions'])) {
update_post_meta($post_id, '_tour_inclusions', $tour['inclusions']);
}
// Nastavi featured image, če obstaja
if (isset($tour['image']) && !empty($tour['image'])) {
$image_url = $tour['image'];
$upload_dir = wp_upload_dir();
// Prenesi sliko
$image_data = file_get_contents($image_url);
$filename = basename($image_url);
if ($image_data !== false) {
$file = $upload_dir['path'] . '/' . $filename;
file_put_contents($file, $image_data);
$wp_filetype = wp_check_filetype($filename, null);
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_title' => sanitize_file_name($filename),
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment($attachment, $file, $post_id);
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attach_data = wp_generate_attachment_metadata($attach_id, $file);
wp_update_attachment_metadata($attach_id, $attach_data);
set_post_thumbnail($post_id, $attach_id);
}
}
echo "Uvožena tura: " . $tour['title'] . "\n";
}
}
echo "Uvoz končan!\n";