页面顶部的缩略图 url returns

Thumbnail url returns at the top of the page

我将这个简单的简码写到 return 我的自定义博客网格中,我想插入 post 特色图片作为 post 磁贴的背景图片。

除了背景图片部分,一切都很好。我不明白为什么页面顶部的图像 URL return 和样式属性为空它 return 只是 `background-image url('');

截图如下:

function gita_blog_grid( $atts ) {
  extract( shortcode_atts( array(
    'post_type' => 'post',
    'orderby' => 'date',
    'order' => 'DESC',
    'perpage' => 3
  ), $atts ) );

  $output = '<div class="posts_wrapper"><div class="gita_posts_row">';
  $args = array(
    'post_type' => $post_type,
    'orderby' => $orderby,
    'order' => $order,
    'posts_per_page' => $perpage
  );

  $gita_query = new WP_Query ( $args );

  while($gita_query->have_posts()) : $gita_query->the_post();

      if(has_post_thumbnail()) {
        $post_thumb = the_post_thumbnail_url('full');
      }

      $output .= '<article class="gita_single_post" style="background-image: url(\''. $post_thumb . ' \')">';
      $output .= '<h3 class="gita_post_title">' . get_the_title() . '</h3>';
      $output .= '</article></div></div>';

    endwhile;
    wp_reset_query();
    return $output;
  }

    add_shortcode('gita_blog', 'gita_blog_grid');

the_post_thumbnail_url 在调用后立即将 url 直接显示到页面。在您的情况下,它会在调用后立即将 URL 字符串直接显示到屏幕上,这是在您完成生成输出处理并将其返回以显示之前。

不是直接显示它,而是想将其作为变量获取,因此需要使用 get_the_post_thumbnail_url

 if(has_post_thumbnail()) {
       $post_thumb = get_the_post_thumbnail_url(get_the_ID(), 'full');
 }

参考: