Почему Featured images не показываются в если шаблон настроен на режим «Elementor Canvas»?

Ссылка скопирована
1 ответ

На сайте есть Featured images под разные соцсети, которые прописаны в header.php в . Прописаны в метатегах.
То есть у всех страниц одна и та же Featured - картинка
.
Если шаблон страницы Elementor Full Width, то на этой странице featured работают.
Если шаблон страницы Elementor Canvas, то картинок нет, описания тоже.

Пробовал метатеги переносить из header.php в functions.php или index.php, но ничего не помогло. Почему-то картинок нет.
Я не веб-специалист и знаю, что ванг здесь нет, но все же. В чем может быть проблема?

Дополнительно:

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Мария Код Ответ

Elementor Canvas специально отключает обычную обвязку темы: header, footer и большую часть шаблонного вывода. Поэтому если Open Graph, Twitter Card, description или другие meta-теги были вручную добавлены в header.php, на страницах с Canvas они не появятся. В режиме Elementor Full Width шапка темы остаётся, поэтому там всё работает.

Правильное место для метатегов — не ручная вставка в header.php, а хук wp_head. Canvas обычно всё равно вызывает wp_head(), потому что без этого не загрузятся стили, скрипты и мета WordPress/Elementor.

add_action('wp_head', function () {
    if (!is_singular()) {
        return;
    }
 
    $image = get_the_post_thumbnail_url(get_the_ID(), 'full');
 
    if (!$image) {
        $image = get_stylesheet_directory_uri() . '/assets/images/default-share.jpg';
    }
 
    echo '<meta property="og:image" content="' . esc_url($image) . '">' . PHP_EOL;
    echo '<meta name="twitter:image" content="' . esc_url($image) . '">' . PHP_EOL;
}, 20);

add_action('wp_head', function () { if (!is_singular()) { return; } $image = get_the_post_thumbnail_url(get_the_ID(), 'full'); if (!$image) { $image = get_stylesheet_directory_uri() . '/assets/images/default-share.jpg'; } echo '<meta property="og:image" content="' . esc_url($image) . '">' . PHP_EOL; echo '<meta name="twitter:image" content="' . esc_url($image) . '">' . PHP_EOL; }, 20);

Но если на сайте стоит Yoast SEO, Rank Math, All in One SEO или другой SEO-плагин, лучше настраивать соцкартинки через него. Иначе можно получить дублирующиеся meta-теги: один набор от плагина, второй — из вашего кода.

Что проверить:

  • есть ли в исходном коде Canvas-страницы вызов wp_head;
  • не отключает ли Elementor часть SEO-мета на конкретном шаблоне;
  • не конфликтуют ли ручные meta-теги с SEO-плагином;
  • какая картинка нужна: общая для всех страниц или featured image каждой страницы.

Если нужна одна общая картинка для всех страниц, код выше можно упростить и всегда выводить один URL. Если нужны разные картинки, используйте featured image или отдельное ACF-поле для соцсетей.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно