Отображение миниатюр сообщений на главной странице - PullRequest
0 голосов
/ 11 апреля 2020

В настоящее время я занимаюсь разработкой своей собственной темы для WordPress и хотел бы иметь боковую панель, которая просто отображает последние сообщения с изображением, которое имеет заголовок и небольшой отрывок внутри. Я изо всех сил пытаюсь понять, как заставить это работать, так как вызов функции:

the_post_thumbnail_url

на главной странице / главной странице не работает так, как я хочу, поэтому я пытаюсь понять, как это сделать. чтобы получить его в карточке ниже:

<div class="card bg-dark text-white">
<img src="..." class="card-img" alt="...">
<div class="card-img-overlay">
<h5 class="card-title">Card title</h5>
<p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
<p class="card-text">Last updated 3 mins ago</p>
</div>
</div>

В настоящее время у меня есть это как мои последние сообщения, которые просто отображают 10 самых последних сообщений с заголовком и выдержкой, но без изображения, так как он просто решает не показывать:

 <div class="col-lg-4 d-none d-lg-block">
 <div class="container sidebar">
 <h3 style="text-align: center; font-weight: 700;">Recent Posts</h3>
 <?php

 $result = wp_get_recent_posts(array(
 'numberposts' => 10,
 'category' => '',
 'post_status' => 'publish',
  ));

foreach( $result as $p ){
 ?>

 <div class="paddingarea text-dark">

 <a class="card-title" href="<?php echo get_permalink($p['ID']) ?>" style="font-weight:  600;"><?php echo $p['post_title']?></a><br />
 <p class="card-text"><?php echo excerpt(10); ?></p>
 </div>
 </div>
 <?php
 }
 ?>

 </div>

1 Ответ

0 голосов
/ 11 апреля 2020

the_post_thumbnail_url() отображает URL-адрес миниатюры сообщения (где сообщение здесь относится к глобальному $post).

В вашем случае, где вы хотите чтобы получить миниатюрный URL-адрес определенного сообщения c (в пределах вашего foreach), вместо этого можно использовать get_the_post_thumbnail_url(), который принимает параметр $post (идентификатор сообщения или WP_Post объект).

get_the_post_thumbnail_url( $post );

Кроме того, поскольку вы хотите напечатать миниатюру, вы можете использовать get_the_post_thumbnail(), которая возвращает Добавить тег изображения для печати вместо его URL.

Это будет выглядеть так:

// Get an array containing 10 most recent posts
$recent_posts = wp_get_recent_posts( array(
  'numberposts' => 10,
  'category'    => '',
  'post_status' => 'publish',
) );

// Iterate over each post and print its thumbnail
foreach ( $recent_posts as $p ) {
  echo get_the_post_thumbnail( $p->ID );
}

Вы можете узнать больше об их различиях:

То есть, если вы хотите использовать существующий код с wp_get_recent_posts().

Другим подходом будет создание нового запроса для l oop через ваш последние сообщения, используя WP_Query, а затем использовать функции WordPress как вы обычно делаете в L oop.

// Create a new query
$recent_posts_query = new WP_Query( array(
  'numberposts' => 10,
  'category'    => '',
  'post_status' => 'publish',
) );

if ( $recent_posts_query->have_posts() ) {
  while ( $recent_posts_query->have_posts() ) {
    $recent_posts_query->the_post();

    // Now you can use WordPress functions as you would normally do in The Loop
    echo '<h2>' . get_the_title() . '</h2>';

    // Print the post thumbnail
    the_post_thumbnail();
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...