• Всем доброго времени суток!
    Чтобы Google News корректно считывали миниатюру в посте, а не брали первую картинку в статье, мне приходится использовать функцию вставки кода в начало записи.
    Я использую такой код:

    add_filter( 'the_content', 'featured_image_before_content' ); 
    
    function featured_image_before_content( $content ) {
    	if ( is_singular('post') && has_post_thumbnail()) {
    		$thumbnail =  get_the_post_thumbnail();
    
    		$content = $thumbnail . $content;
    	}
    
    	return $content;
    }

    Он превосходного выполняет свою функцию, но отображение выглядит не так, как мне нужно. Мне необходимо как-то перевести код ниже в функцию выше. Прошу помощи.

    <div class="widget-week-item5"><?php if ( has_post_thumbnail()): ?><?php the_post_thumbnail();  ?><?php endif;?>
    
    								<div class="widget-week-content5">
    	<div class="item-comments5">
    		<span class="categorys5"><?php the_category(', '); ?></span>
    		<span class="item-views5"><i class="fa fa-clock-o"></i> <?php the_time( get_option( 'date_format' ) ); ?>  |
    		<i class="fa fa-comment-o"></i> <span class="count-comment{num}"><?php comments_number('0', '1', '%');?></span>
    		</a> | <i class="fa fa-eye"></i> <?php if(function_exists('the_views')) { the_views(); } ?></span></div>
    <a class="title" ><?php the_title(); ?></div></div>
    </a>

Просмотр 8 ответов — с 16 по 23 (всего 23)
  • visajack, как это должно помочь мне?)

    Эксперимент завершен. Обычная вставка кода вывода миниатюры не подходит.

    . Что и требовалось доказать.

    visajack, как это должно помочь мне?)

    Именно в этом файле происходит создание Новости. Там и картинка, и дата и всё остальное. Я к тому, что даже если написать функцию, которую вы хотели в первом посте использоваться она не будет, так как за генерацию Новости отвечает плагин Yoast SEO в месте, указанном постом выше.

    Предлагаете использовать другой плагин?

    Функция (первая) отлично работает. Просто она выводит «голую» картинку, а мне нужно мое оформление.

    Предлагаете использовать другой плагин?

    Какая разница какой плагин, если в итоге придётся переделывать функцию, которая генерит новость.
    Лучше уже написать свою собственную функцию(плагин), которая будет создавать sitemap в том виде, в котором Вы хотите её видеть, а подом подсовывать карту google news.
    Но это больше, наверное, в раздел «специалистов», ибо работы не на обычное «подскажите».
    Либо вникайте в код, который я показал выше и пытайтесь разобраться «как оно работает».

    Хотя может я заблуждаюсь и есть стандартные решения…

    Покопал немного в этом направлении. Собственно всё-таки робот Google сканирует the content, и в первую очередь берет картинки именно оттуда. Я набросал функцию, но она не загружает данные записи.

    add_filter( 'the_content', 'featured_image_before_content' ); 
    
    function featured_image_before_content( $content ) {
    if ( is_singular('post') && has_post_thumbnail()) {
    $thumbnail =  get_the_post_thumbnail();
    $category = the_category(', ');
    $time = the_time( get_option( 'date_format' ) );
    $comment = comments_number('0', '1', '%');
    $view = the_views();
    $title = the_title();
    
    $content = '<div class="widget-week-item5">' . $thumbnail . '<div class="widget-week-content5">' . '<div class="item-comments5">' . '<span class="categorys5">' . $category . '</span>' . '<span class="item-views5"><i class="fa fa-clock-o"></i>' . $time . '<i class="fa fa-comment-o"></i> <span class="count-comment{num}">' . $comment . '</span>' . '<i class="fa fa-eye"></i>' . $view . '</span></div>' . '<a class="title">' . $title . '</a></div></div>' . $content;
    }
    
    return $content;
    }

    Все работает, за исключением трех досадных багов.

    add_filter( 'the_content', 'featured_image_before_content' ); 
    
    function featured_image_before_content( $content ) {
    if ( is_singular('post') && has_post_thumbnail()) {
    $thumbnail =  get_the_post_thumbnail();
    $categories = get_the_category();
    $time =  get_the_time( get_option( 'date_format' ) );
    $comment = get_comments_number('0', '1', '%');
    $view = get_the_views();
    $title = get_the_title( $ID );
    
    $content =  '<div class="widget-week-item5">' . $thumbnail . '<div class="widget-week-content5"><div class="item-comments5">' . '<span class="categorys5">' . $categories . '</span>' . '<span class="item-views5"><i class="fa fa-clock-o"></i> ' . $time . ' | ' . '<i class="fa fa-comment-o"></i> <span class="count-comment{num}">' . $comment . '</span>' . ' | ' . '<i class="fa fa-eye"></i> ' . $view . '</span></div>' . '<a class="title">' . $title . '</a></div></div>' . $content;
    }
    
    return $content;
    }

    Вывести количество комментариев из плагина WP-PostViews не удается.
    Вместо категорий пишет Array
    Если попытаться опубликовать запись в социальную сеть, то там где должен быть обычный текст сначала выводится дата, количество комментариев и просмотров.
    Как решить эти три проблемы?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Вывести количество комментариев из плагина WP-PostViews не удается.

    Может, просмотров? Функции get_the_views() в нём нет, есть the_views() с параметром $display. Замените на the_views( false ).

    Вместо категорий пишет Array

    Функция get_the_category() возвращает массив. Замените на get_the_category_list(), она возвращает список.

Просмотр 8 ответов — с 16 по 23 (всего 23)
  • Тема «Перевести код php в functions» закрыта для новых ответов.