@pavelzabavin

Как настроить вывод изображения статьи для кнопки «поделиться»?

Здравствуйте.

Создаю свой личный блог. Использую Wordpress.

Я решил добавить кнопки «Поделиться» от Яндекса на сайт. Успешно заменил стандартные иконки на свои. Успешно настроил вывод названия статьи и описания. А вот настроить вывод изображения не представляется возможным.

Немного кода...

1. Так у меня выглядит файл functions.php

<?php

remove_action('wp_head', 'wp_generator');


register_nav_menus(array(
    'main' => 'Главное меню',
    'mobile_main' => 'Мобильное меню',
	'about_page' => 'Меню на странице about'
));

if ( function_exists('register_sidebar') ){
	register_sidebar(array(
		'name' => 'about_sidebar',
		'description' => 'Место для виджета адреса на странице about',
		'class' => 'about_sidebar',
		'before_widget' => "<div class='about_widget'>",
		'after_widget' => "</div>",
		'before_title' => "<h3>",
		'after_title' => "</h3>"
	));
}

add_action('wp_ajax_theme_news', 'ajax_news');
add_action('wp_ajax_nopriv_theme_news', 'ajax_news');


function ajax_news(){
    global $wpdb;

    $posts = get_posts(array(
        'numberposts' => intval($_GET['per_page']),
        'offset' => intval($_GET['page']*$_GET['per_page'])
    ));

    if(count($posts) == 0){
        $result = array(
            'success' => 1,
            'nomore' => 1,
        );
    }else{
        foreach($posts as &$post){
            $post->post_cover = get_post_meta($post->ID, 'cover', 1);
            unset($post->post_content);
            list($date, $time) = explode(" ", $post->post_date);
            $date = explode("-", $date);
            $post->post_date = $date[2]."/".$date[1]."/".$date[0];
            $post->permalink = get_permalink($post->ID);
        }
        $result = array(
            'success' => 1,
            'news' => $posts
        );
    }

    echo json_encode($result);
    exit;
}


2. Кнопка «Поделиться» во ВКонтакте (Отображает название статьи и текст статьи).

<?php echo urlencode(get_permalink()); ?>
				&title=<?php echo urlencode(get_the_title()); ?>
				&description=<?php echo urlencode(mb_substr(strip_tags(get_the_content()), 0, 134).'...');?>">


Какой код нужно написать для вывода изображения согласно файлу functions.php?
  • Вопрос задан
  • 464 просмотра
Пригласить эксперта
Ответы на вопрос 5
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
Здравствуйте.

По идеи, соцсети должны подхватывать заголовок, описание и изображение из спецтегов Open Graph.
<meta property="og:title" content="Заголовок для отображения в сниппете">
<meta property="og:image" content="ссылка на картинку">
<meta property="og:description" content="Описание для сниппета, текст под названием страницы">

Насколько я помню, их умеет добавлять Add Meta Tags и Yoast SEO и наверняка какие-то другие плагины для seo.
Ответ написан
neovictor
@neovictor
Фрилансер
og метатеги, но ссылку нужно указывать уже для статьи, а не страницы с превью
Ответ написан
Комментировать
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
вам на странице нужен метатег с нужной картиной
<meta property="og:image" content="путь до картинки" />
Ответ написан
Комментировать
Kozack
@Kozack Куратор тега WordPress
Thinking about a11y
До, соц.сети должны сами загружать информацию о странице. Но как альтернатива явно указать Заголовок, Описание и Изображение. У кнопок Яндекса для этого есть специальный параметр
https://tech.yandex.ru/share/doc/dg/api-docpage/
Ответ написан
trampick
@trampick
Веб-разработчик
Я бы посоветовал вам использовать плагин AddToAny Share Buttons. В нем есть возможность выбрать необходимые соцсети (там их около 100). Можно настроить так что бы для каждого поста или страницы выводились внизу эти кнопки, но я бы советовал использовать шорткод в нужном месте.
Сам шорткод
[addtoany]

Пример использования есть на этом сайте arduino54.ru
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы