Обновление пользовательских полей с использованием внешних данных

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

Для наших статей на нашем сайте WordPress мы хотели бы отображать аналитику статей, которая собирается каждую неделю для каждой рукописи. У нас есть собственные настраиваемые поля для каждого поста:

  • Просмотры статьи
  • Загрузки PDF
  • Просмотры PubMed Central
  • Цитирования статьи

Эти данные (которые поступают из разных источников) собираются каждую неделю для каждой из наших статей в файл CSV. Я хотел бы запустить некий скрипт каждую неделю, который возьмет эти данные и обновит настраиваемые поля в базе данных WordPress (в каждом посте) данными из этого файла CSV.

Есть ли способ написать скрипт, который может это сделать?

Вы можете использовать функцию fgetcsv() или str_getcsv() в PHP для разбора загруженного файла CSV. Ваш CSV должен содержать столбец с ID поста, а также столбцы, соответствующие вашим настраиваемым именам полей. Пройдитесь по файлу CSV и для каждой строки обновите настраиваемые поля для этого поста, используя update_post_meta()

http://php.net/manual/en/function.fgetcsv.php

http://php.net/manual/en/function.str-getcsv.php

http://codex.wordpress.org/Function_Reference/update_post_meta

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

Для обновления пользовательских полей в WordPress с использованием данных из внешнего CSV-файла, вам потребуется создать скрипт на PHP, который будет выполнять следующие действия: считывать данные из CSV-файла, обрабатывать каждую запись и обновлять соответствующие пользовательские поля постов на вашем сайте.

Шаги для реализации:

  1. Подготовка CSV-файла
    Убедитесь, что ваш CSV-файл содержит необходимую информацию. Минимально он должен включать следующие столбцы:

    • Post ID: уникальный идентификатор поста в WordPress.
    • Article Views: количество просмотров статьи.
    • PDF Downloads: количество загрузок PDF.
    • PubMed Central Views: количество просмотров через PubMed Central.
    • Article Citations: количество цитирований статьи.

    Пример структуры CSV:

    Post ID,Article Views,PDF Downloads,PubMed Central Views,Article Citations
    1,150,30,45,10
    2,200,50,70,12
  2. Создание PHP-скрипта
    Вы можете создать PHP-скрипт, который будет обрабатывать CSV-файл и обновлять пользовательские поля. Вот пример такого скрипта:

    <?php
    // Путь к вашему CSV файлу
    $csvFile = 'path/to/your/file.csv';
    
    // Открываем CSV файл
    if (($handle = fopen($csvFile, 'r')) !== FALSE) {
       // Пропускаем заголовок
       fgetcsv($handle);
    
       // Чтение данных пост по строкам
       while (($data = fgetcsv($handle)) !== FALSE) {
           // Получаем Post ID и значения
           $post_id = intval($data[0]);
           $article_views = intval($data[1]);
           $pdf_downloads = intval($data[2]);
           $pubmed_views = intval($data[3]);
           $article_citations = intval($data[4]);
    
           // Обновление пользовательских полей
           update_post_meta($post_id, 'Article Views', $article_views);
           update_post_meta($post_id, 'PDF Downloads', $pdf_downloads);
           update_post_meta($post_id, 'PubMed Central Views', $pubmed_views);
           update_post_meta($post_id, 'Article Citations', $article_citations);
       }
       fclose($handle);
    }
    ?>
  3. Запланированное выполнение скрипта
    Чтобы автоматически запускать этот скрипт раз в неделю, вы можете воспользоваться функционалом WP-Cron в WordPress. Таким образом, вы сможете запланировать выполнение вашего скрипта, что позволит обеспечить актуальность данных.

    Пример создания задачи Cron:

    add_action('wp', 'my_cron_schedule');
    function my_cron_schedule() {
       if (!wp_next_scheduled('update_article_analytics')) {
           wp_schedule_event(time(), 'weekly', 'update_article_analytics');
       }
    }
    
    add_action('update_article_analytics', 'update_article_analytics_function');
    function update_article_analytics_function() {
       // Поместите здесь код из вашего вышеуказанного скрипта
    }

Заключение

Создание скрипта для обновления пользовательских полей в WordPress с использованием данных из внешнего CSV-файла — это удобный способ автоматизации управления аналитикой ваших статей. Следуя вышеописанным шагам, вы сможете настроить процесс обновления данных, что существенно упростит вашу работу и повысит эффективность ведения сайта. Не забывайте проводить тестирование, чтобы убедиться, что скрипт работает корректно и обновляет данные в соответствии с ожиданиями.

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

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