Как изменить / добавить миниатюру в блок WordPress Последние сообщения? - PullRequest
0 голосов
/ 12 марта 2019

Проблема: отображается только заголовок сообщения.

Мне нужно добавить избранные изображения / миниатюру и отрывок из записи в блоке последних сообщений ...

Я нашел файл для редактирования:В папке WordPress wp-includes / blocks / latest-posts.php

Как мне изменить приведенный ниже код и вставить его в плагин или, возможно, в мой файл functions.php.

спасибо

<?php
/**
 * Server-side rendering of the <code>core/latest-posts</code> block.
 *
 * @package WordPress
 */

/**
 * Renders the <code>core/latest-posts</code> block on server.
 *
 * @param array $attributes The block attributes.
 *
 * @return string Returns the post content with latest posts added.
 */
function render_block_core_latest_posts( $attributes ) {
    $args = array(
        'numberposts' => $attributes['postsToShow'],
        'post_status' => 'publish',
        'order'       => $attributes['order'],
        'orderby'     => $attributes['orderBy'],
    );

    if ( isset( $attributes['categories'] ) ) {
        $args['category'] = $attributes['categories'];
    }

    $recent_posts = wp_get_recent_posts( $args );

    $list_items_markup = '';

    foreach ( $recent_posts as $post ) {
        $post_id = $post['ID'];

        $title = get_the_title( $post_id );
        if ( ! $title ) {
            $title = __( '(Untitled)' );
        }

        $list_items_markup .= sprintf(
            '<li>
            <a href="%2$s">%1$s%3$s</a><p>%4$s</p>',
            get_the_post_thumbnail( $post_id ),
            esc_url( get_permalink( $post_id ) ),
            esc_html( $title ), 
            get_the_excerpt( $post_id )
        );

        if ( isset( $attributes['displayPostDate'] ) && $attributes['displayPostDate'] ) {
            $list_items_markup .= sprintf(
                '<time datetime="%1$s" class="wp-block-latest-posts__post-date">%2$s</time>',
                esc_attr( get_the_date( 'c', $post_id ) ),
                esc_html( get_the_date( '', $post_id ) )
            );
        }
        $list_items_markup .= "</li>\n";
    }

    $class = 'wp-block-latest-posts';
    if ( isset( $attributes['align'] ) ) {
        $class .= ' align' . $attributes['align'];
    }

    if ( isset( $attributes['postLayout'] ) && 'grid' === $attributes['postLayout'] ) {
        $class .= ' is-grid';
    }

    if ( isset( $attributes['columns'] ) && 'grid' === $attributes['postLayout'] ) {
        $class .= ' columns-' . $attributes['columns'];
    }

    if ( isset( $attributes['displayPostDate'] ) && $attributes['displayPostDate'] ) {
        $class .= ' has-dates';
    }

    if ( isset( $attributes['className'] ) ) {
        $class .= ' ' . $attributes['className'];
    }

    $block_content = sprintf(
        '<ul class="%1$s">%2$s</ul>',
        esc_attr( $class ),
        $list_items_markup
    );

    return $block_content;
}

/**
 * Registers the <code>core/latest-posts</code> block on server.
 */
function register_block_core_latest_posts() {
    register_block_type(
        'core/latest-posts',
        array(
            'attributes'      => array(
                'categories'      => array(
                    'type' => 'string',
                ),
                'className'       => array(
                    'type' => 'string',
                ),
                'postsToShow'     => array(
                    'type'    => 'number',
                    'default' => 5,
                ),
                'displayPostDate' => array(
                    'type'    => 'boolean',
                    'default' => false,
                ),
                'postLayout'      => array(
                    'type'    => 'string',
                    'default' => 'list',
                ),
                'columns'         => array(
                    'type'    => 'number',
                    'default' => 3,
                ),
                'align'           => array(
                    'type' => 'string',
                ),
                'order'           => array(
                    'type'    => 'string',
                    'default' => 'desc',
                ),
                'orderBy'         => array(
                    'type'    => 'string',
                    'default' => 'date',
                ),
            ),
            'render_callback' => 'render_block_core_latest_posts',
        )
    );
}

add_action( 'init', 'register_block_core_latest_posts' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...