Вопрос или проблема
Для наших статей на нашем сайте 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-файла, обрабатывать каждую запись и обновлять соответствующие пользовательские поля постов на вашем сайте.
Шаги для реализации:
-
Подготовка 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
-
Создание 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); } ?>
-
Запланированное выполнение скрипта
Чтобы автоматически запускать этот скрипт раз в неделю, вы можете воспользоваться функционалом 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-файла — это удобный способ автоматизации управления аналитикой ваших статей. Следуя вышеописанным шагам, вы сможете настроить процесс обновления данных, что существенно упростит вашу работу и повысит эффективность ведения сайта. Не забывайте проводить тестирование, чтобы убедиться, что скрипт работает корректно и обновляет данные в соответствии с ожиданиями.