Увеличьте продажи на вашем сайте WordPress
Выгрузка YML — это ключ к интеграции вашего сайта с популярными маркетплейсами и агрегаторами. В этой статье мы расскажем, как создать выгрузку YML для вашего сайта на WordPress и поделимся полезными советами по ее настройке и оптимизации.
Работа с фидом для передачи товаров, услуг и предложений
Чтобы ваши товары, услуги и предложения выглядели в результатах поиска Яндекса информативно и привлекательно, передавайте информацию с помощью YML-фида. Дополненное представление, сформированное на его основе, позволит привлекать больше заинтересованной аудитории.
PHP скрипт для создания выгрузки YML
Для создания выгрузки в YML необходимо создать PHP скрипт. Пример PHP скрипта представлен ниже:
<?php
require_once($_SERVER['DOCUMENT_ROOT'] . '/wp-load.php');
// Заголовки для указания, что это XML файл
header('Content-Type: application/xml; charset=utf-8');
// Начало XML
if(false):
echo '<?xml version="1.0" encoding="UTF-8"?>';
endif;
$date = date("Y-m-d")."T".date("H:i");
echo '<yml_catalog date="'.$date.'">';
echo '<shop>';
// Основная информация о клинике
echo '<name>Название</name>';
echo '<company>' . htmlspecialchars('ООО «Название организации»', ENT_XML1, 'UTF-8') . '</company>';
echo '<url>https://example.ru/</url>';
echo '<picture>https://example.ru/wp-content/themes/child-theme/assets/img/logo.png</picture>';
echo '<description>Каталог врачей и медицинских услуг</description>';
echo '<currencies><currency id="RUR" rate="1"/></currencies>';
echo '<categories><category id="1">Врачи</category></categories>';
echo '<sets>';
$taxonomy = 'doctors-cat';
// Получаем все термины таксономии
$terms = get_terms(array(
'taxonomy' => $taxonomy,
'hide_empty' => true,
));
if (!empty($terms) && !is_wp_error($terms)) {
foreach ($terms as $term) {
// Выводим каждый терм как сет
echo '<set id="' . $term->term_id . '">';
echo '<name>' . htmlspecialchars($term->name, ENT_XML1, 'UTF-8') . '</name>';
echo '</set>';
}
}
echo '</sets>';
// Предложения (врачи)
echo '<offers>';
$args = array(
'post_type' => 'doctors',
'posts_per_page' => -1,
);
$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
$categories = wp_get_post_terms(get_the_ID(), 'doctors-cat');
echo '<offer id="' . get_the_ID() . '">';
echo '<name>' . strip_tags(htmlspecialchars(get_the_title(), ENT_XML1, 'UTF-8')) . '</name>';
echo '<url>' . get_the_permalink() . '</url>';
echo '<price>0</price>';
echo '<currencyId>RUR</currencyId>';
echo '<set-ids>';
foreach ($categories as $key => $category):
if($key):
echo ',';
endif;
echo $category->term_id;
endforeach;
echo '</set-ids>';
echo '<categoryId>1</categoryId>';
if( trim(get_field('pt_doctors_experience')) != '' ):
$experience = preg_replace('/[^0-9]/', '', get_field('pt_doctors_experience'));
else:
$experience = 0;
endif;
echo '<param name="Годы опыта">'. $experience .'</param>';
echo '<param name="Город">г. Москва</param>';
echo '<param name="Название клиники">Название организации</param>';
echo '<param name="Адрес клиники">Москва, м. Кунцево ул. Перовская, д. 77</param>';
echo '</offer>';
}
}
// Сброс глобальной переменной и запроса
wp_reset_postdata();
echo '</offers>';
echo '</shop>';
echo '</yml_catalog>';
?>
Настройка .htaccess
Для корректной работы скрипта необходимо добавить следующие строки в файл .htaccess
RewriteCond %{REQUEST_FILENAME} /doctors.yml
RewriteCond %{DOCUMENT_ROOT}/wp-content/themes/child-theme/inc/doctors-feed.php -f
RewriteRule ^(.*)$ wp-content/themes/child-theme/inc/doctors-feed.php [L]
Подробное описание настроек .htaccess
RewriteCond %{REQUEST_FILENAME} /doctors.yml: Это условие проверяет, является ли запрашиваемый файл/путь на сервере /doctors.yml
. Если это так, то правила перенаправления, указанные далее в коде, будут выполняться.
RewriteCond %{DOCUMENT_ROOT}/wp-content/themes/child-theme/inc/doctors-feed.php -f: Это условие проверяет, существует ли файл/путь на сервере wp-content/themes/child-theme/inc/doctors-feed.php
. Если файл существует, то правила перенаправления будут продолжаться.
RewriteRule ^(.*)$ wp-content/themes/child-theme/inc/doctors-feed.php [L]: Это правило перенаправляет все запросы в папку wp-content/themes/child-theme/inc/doctors-feed.php
. Флаг [L]
указывает на то, что это последнее правило, которое должно быть выполнено для данного запроса.
Таким образом, эти строки кода позволяют серверу перенаправить все запросы к файлу /doctors.yml
или существующему файлу wp-content/themes/child-theme/inc/doctors-feed.php
на указанный путь и файл.
Создание выгрузки YML для сайта на WordPress — это важный шаг для интеграции вашего сайта с популярными маркетплейсами и агрегаторами. С помощью этого PHP скрипта и настроек .htaccess вы можете создать выгрузку YML, которая позволит вам увеличить продажи и расширить аудиторию вашего интернет-магазина.