Изображение по умолчанию для домашней страницы при публикации в социальных сетях
В настоящее время моя домашняя страница содержит несколько последних сообщений. Поэтому, когда домашняя страница публикуется через социальные сети (например, Facebook), отображаемое уменьшенное изображение происходит от верхнего изображения в последнем сообщении.
Что я пытаюсь сделать, так это настроить его так, чтобы при публикации домашней страницы отображалось определенное изображение по умолчанию. Однако изображение должно отображаться только тогда, когда домашняя страница является общедоступной, и в противном случае не должно появляться на сайте. Что был бы лучший способ сделать это?
3 answers
Несколько вариантов:
Готовый плагин
Если вы используете SEO для WordPress, у вас есть встроенная настройка для изображений Facebook. В меню SEO > Социальные сети перейдите на вкладку Facebook и выберите изображение в разделе "Настройки главной страницы". Вы также можете установить изображение в качестве запасного варианта для сообщений, в которых нет изображения, в разделе "Настройки по умолчанию".
Другие SEO-плагины могут обладать аналогичными возможностями.
Детская тема
Вы можете создавать дочернюю тему или измените пользовательскую тему. Во-первых, убедитесь, что тема поддерживает логотип сайта. Если нет, добавьте поддержку пользовательских логотипов.
Затем отредактируйте или скопируйте header.php
в свою новую дочернюю тему. Внутри тегов <head></head>
включите проверку на if(is_front_page())
или if(is_home())
в зависимости от ваших потребностей. Похоже, в вашем случае сработало бы и то, и другое.
Если условие выполнено, возьмите URL-адрес пользовательского логотипа
$image = wp_get_attachment_image_url(get_theme_mod('custom_logo'), 'large');
И выведите его в тегах открытого графика:
<meta property="og:image" content="<?php echo $image; ?>" />
<meta name="twitter:image" content="<?php echo $image; ?>" />
Изготовленный на заказ плагин
Вы также можете создать свой собственный плагин, если вы не хотите использовать SEO для WordPress или возиться с темой. Риск заключается в том, что существующая тема или плагин могут уже выводить показанное изображение, поэтому вам следует проверить источник страницы и убедиться, что больше ничего не настраивает показанное изображение. Я предполагаю, что это так, поскольку ваша текущая тема и плагины устанавливают изображение самого последнего опубликованного поста, когда вы пытаетесь поделиться им.
В принципе, вы бы добавили действие для крючка wp_head
. Ваше действие выведет данные открытого графика и изображения Twitter точно так же, как если бы вы выбрали первый вариант, работая с темой.
Вам нужно будет решить, следует ли жестко закодировать изображение в свой плагин, или вы создадите страницу параметров где-нибудь в wp-admin, где вы сможете менять изображение, когда захотите.
Различные социальные платформы используют разные методы.
Для Facebook вам нужен набор тегов <meta>
со свойствами og
, например og:url
, og:type
, og:description
и og:image
. og:image
должен содержать полный путь к изображению, которое вы хотите отобразить.
Twitter похож, но имеет свой собственный механизм "карточки", который требует своего собственного набора тегов meta
- например, name="twitter:card"
и name="twitter:image"
Я считаю, что для этого есть плагины. У меня есть своя собственная простая функция, которая использует миниатюру страницы или запасной вариант, если это не установлено.
Мета-теги OG, вероятно, это то, что вы ищете, в данном случае:
<meta property="og:image"content="path/to/foo.jpg" />
Поместите внутрь, если is_home()
и, надеюсь, это сработает