GRAVITSAPA.INFO

Компьютеры, электроника, софт, авто, мото, вело, сайты, жизнь, советы :)

GRAVITSAPA.info - интересный блог

Делаем фид xml для турбо-страниц Яндекс на WordPress без плагинов

79 просмотров Создание сайтов Нет комментов » 03 Ноя 2019

Что бы сделать для Яндекса Турбо-страницы в WordPress, выполняем простую инструкцию:

  1. Добавляем код в файл functions.php текущей темы WordPress:
    <?php //turbo yandex
    add_action('init', 'customRSS');
    function customRSS(){
    add_feed('feedturbo', 'customRSSFunc');
    }
    function customRSSFunc(){
    get_template_part('rss', 'feedturbo');
    }
    ?>
  2. В папке с темой создаём файл rss-feedturbo.php и добавляем туда код:
    <?php
    $postCount = 5000; // кол-во записей в фиде
    $posts = query_posts('showposts=' . $postCount);
    header('Content-Type: '.feed_content_type('rss-http').'; charset='.get_option('blog_charset'), true);
    echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
    ?>
    <rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:media="http://search.yahoo.com/mrss/"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    <?php do_action('rss2_ns'); ?>>
    <channel>
    <title><?php bloginfo_rss('name'); ?></title>
    <link><?php bloginfo_rss('url') ?></link>
    <description><?php bloginfo_rss('description') ?></description>
    <language>ru</language>
    <?php do_action('rss2_head'); ?>
    <?php while(have_posts()) : the_post(); ?>
    <item turbo="true">
    <title><?php the_title_rss(); ?></title>
    <link><?php the_permalink_rss(); ?></link>
    <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate>
    <media:rating scheme="urn:simple"><?php echo get_post_meta($post->ID,'wpcf-adult',true); ?></media:rating>
    <author><?php the_author(); ?></author>
    <category><?php echo get_post_meta($post->ID,'wpcf-feedturbo-category',true); ?></category>
    <?php
    $gallery = get_attached_media( 'image',$post );
    foreach( $gallery as $image_url ) {
    echo '<enclosure url="' . $image_url->guid . '" type="image/jpeg"/>';
    }
    ?>
    <description><![CDATA[<?php echo get_the_excerpt(); ?>]]></description>
    <turbo:content><![CDATA[
    <?php
    $content=get_post_field('post_content', $post->ID);
    $pattern = '/(<img([^>]*)>)/i';
    $replacement = '<figure>$1<figcaption>
    '.get_the_title().'
    </figcaption>
    </figure>';
    $content = preg_replace( $pattern, $replacement, $content );
    echo $content;
    ?>]]></turbo:content>
    <?php rss_enclosure(); ?>
    <?php do_action('rss2_item'); ?>
    </item>
    <?php endwhile; ?>
    </channel>
    </rss>
  3. Заходим в админку WordPress -> Настройки -> Постоянные ссылки -> нажимаем Сохранить ничего не меняя. Это нужно сделать что сформировался новый фид.
    Если установлен Yoast SEO, то заходим в настройки плагина -> Отображение в поисковой выдаче -> нажимаем Сохранить.
  4. Открываем фид для проверки по адресу https://ваш-сайт.com/feed/feedturbo (если выскочит ошибка «Namespace prefix turbo on content is not defined», то ничего страшного…)
  5. Заходим в Яндекс Вебмастер -> Турбо-страницы -> Источники -> Добавляем фид и включаем

Этот способ быстрый, не нагружает сайт, легко модернизируется. Делитесь статьёй в соц. сетях 😉

Оставь свой коммент

NIGHT
Наверх