Плагин SEO Yoast как удалить теги image:image из Sitemap для Яндекса

в разделе внутреннее seo, WordPress. комментарии: 4

Когда Бета вебмастер Яндекса пишет ошибку

Неизвестный тег image:image (25 предупреждений)
стр. поз.
8 image:image
12 image:image

Можно удалить тег image:image из плагина формирования sitemap. Но это грубо и некорректно, поэтому, применим другое решение.

Вот верное решение:

1
2
3
4
5
6
7
8
9
add_filter(
    'wpseo_sitemap_url',
    function ($output, $url) {
        $output = preg_replace("'<image:image[^>]*?>.*?</image:image>'si", '', $output);
        return $output;
    },
    10,
    2
);

Которое любезно опубликовал alkoweb.ru, спасибо ему за это.
Ниже приведено старое решение:
Для плагина WordPress SEO Yoast удалить теги image из Sitemap можно следующим образом:

  1. Открываем для редактирования файл /wp-content/plugins/wordpress-seo/inc/sitemaps/class-sitemaps-renderer.php
  2. Находим строки
    1
    if ( empty( $url['images'] ) ) {
  3. Убираем или закомментируем, соедующие строки
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    if ( empty( $url['images'] ) ) {
                $url['images'] = array();
            }

            foreach ( $url['images'] as $img ) {

                if ( empty( $img['src'] ) ) {
                    continue;
                }

                $output .= "\t\t<image:image>\n";
                $output .= "\t\t\t<image:loc>" . esc_html( $img['src'] ) . "</image:loc>\n";

                if ( ! empty( $img['title'] ) ) {
                    $title = _wp_specialchars( html_entity_decode( $img['title'], ENT_QUOTES, $this->charset ) );
                    $output .= "\t\t\t<image:title><![CDATA[{$title}]]></image:title>\n";
                }

                if ( ! empty( $img['alt'] ) ) {
                    $alt = _wp_specialchars( html_entity_decode( $img['alt'], ENT_QUOTES, $this->charset ) );
                    $output .= "\t\t\t<image:caption><![CDATA[{$alt}]]></image:caption>\n";
                }

                $output .= "\t\t</image:image>\n";
            }
            unset( $img, $title, $alt );

            $output .= "\t</url>\n";

Сохраняем и загружаем файл на сервер, f5 и вуаля, теги image из Sitemap удалены. Отправляем обратную связь с яндекс вебмастер.


К записи 4 комментария

Последние две строки комментировать не нужно, получится ерунда… до unset в комменты и всё хорошо будет!

Что то уже нет такого файла, поменяли что-то!

Ещё бы написали что такое закомментировать, или скрин уже исправленного файла.

Мда, очень развернутый ответ, жесть, еще и с ошибками



Комментировать