Импортировать XML-файл из URL автоматически в макет ACF

Вопрос или проблема

Нам нужно для нашего клиента, который использует HR портал для описаний вакансий, отобразить все предложения о работе на веб-сайте WordPress с помощью ACF. Пример фида выглядит следующим образом.

“https://mitarbeiter.pi-ag.com/bewerber-web/public/JobPortalData?companyEid=DNU01&tenant=&lang=D&jobPortal=f162fa4f-1eeb-47f2-96a4-d78fe47323ca”

Задача заключается в том, как интегрировать динамические данные в пользовательские поля. Спасибо за подсказку. Мы также хотели бы передать эту работу фрилансеру.

Ответ или решение

Для автоматического импорта XML-файла с URL в макет ACF (Advanced Custom Fields) на WordPress, требуется выполнять несколько шагов. Давайте разберем этот процесс подробно, чтобы обеспечить полное понимание и эффективное применение данных.

1. Изучение источника данных

Прежде всего, необходимо ознакомиться с форматом XML, который поставляется по указанной ссылке:

https://mitarbeiter.pi-ag.com/bewerber-web/public/JobPortalData?companyEid=DNU01&tenant=&lang=D&jobPortal=f162fa4f-1eeb-47f2-96a4-d78fe47323ca

Для этого можно использовать инструменты, такие как Postman или простой браузер. Мы должны удостовериться, что можем получить нужную структуру данных.

2. Обработка XML данных

Следующим шагом будет создание PHP-скрипта, который будет обрабатывать XML-данные. Это можно сделать с помощью функции simplexml_load_file(), которая позволяет загрузить XML содержимое в простой объект.

Пример кода:

$url = 'https://mitarbeiter.pi-ag.com/bewerber-web/public/JobPortalData?companyEid=DNU01&tenant=&lang=D&jobPortal=f162fa4f-1eeb-47f2-96a4-d78fe47323ca';
$xml = simplexml_load_file($url);

// Проверяем наличие ошибок при загрузке
if ($xml === false) {
    die('Ошибка загрузки XML');
}

3. Импорт данных в ACF

Для импорта данных в ACF, необходимо знакомиться с функциями, предоставляемыми плагином ACF. Например, update_field() или add_row(), если мы работаем с повторяющимися полями.

Создадим функцию, которая будет преобразовывать байты XML в поля ACF.

foreach ($xml->jobOffers->jobOffer as $jobOffer) {
    $post_data = array(
        'post_title'   => (string) $jobOffer->title,
        'post_content' => (string) $jobOffer->description,
        'post_status'  => 'publish',
        'post_type'    => 'job_listing',  // Убедитесь, что этот тип записи соответствует вашему определению
    );

    // Создание записи
    $post_id = wp_insert_post($post_data);

    // Проверка успешного создания записи
    if ($post_id) {
        // Пример обновления пользовательских полей
        update_field('field_company', (string) $jobOffer->company, $post_id);
        update_field('field_location', (string) $jobOffer->location, $post_id);
        // Добавьте больше полей по мере необходимости
    }
}

4. Автоматизация процесса импорта

Чтобы этот процесс выполнялся регулярно (например, раз в день), можно использовать WP Cron. Добавим событие, которое будет вызывать импорт данных.

if (!wp_next_scheduled('import_job_offers_event')) {
    wp_schedule_event(time(), 'daily', 'import_job_offers_event');
}

add_action('import_job_offers_event', 'import_job_offers_function');

function import_job_offers_function() {
    // Вставьте здесь код, который мы рассмотрели выше
}

5. Советы для фрилансера

Если вы планируете передать эту задачу фрилансеру, рекомендую:

  1. Сообщить о необходимых навыках: PHP, WordPress API, ACF, работа с XML.
  2. Пересмотреть код, чтобы убедиться, что он безопасен и оптимизирован.
  3. Запросить создание документации по коду для будущих изменений и поддержки.

Заключение

Подводя итог, мы рассмотрели пошаговый процесс автоматического импорта данных с XML в ACF. Включая обработку XML, создание пользовательских полей и автоматизацию с помощью крон-задач, исполнение этих шагов обеспечит быструю и эффективную интеграцию данных в ваш HR-портал на WordPress.

Оцените материал
Добавить комментарий

Капча загружается...