使用短码获取Post的第一张图像

时间:2018-07-22 作者:remy boys

我正在尝试获取帖子的第一张图片(链接),目前我正在使用Shorcodes Ultimade 到目前为止,我可以在我的静态主页上使用以下短代码获取帖子的内容

[su_post field="post_content" default="" before="" after="" post_id="68" filter=""]
但上面的快捷码返回的是全部内容(图片+帖子文本)

我查看了文档,他们似乎没有任何内置的解决方案可以从帖子中仅获取图像,任何人都知道如何仅获取图像,或者如何从返回的数据中仅过滤出图像?

1 个回复
最合适的回答,由SO网友:Andrea Somovigo 整理而成

我会重写一个简单的短代码,只检索帖子图像:

add_shortcode( "postImages", "stack_309224_attachhment" );

function stack_309224_attachhment($atts){
extract(shortcode_atts( array(
  \'id\'      => 1, // default id of the post
  "max"   =>4 ,// default max number of images to display
  "featured"=>"false" // if to retrieve the post featured image or not, default false
),  $atts ));

ob_start();
if($atts[\'featured\']=="true"){ // display only the featured image
  ?>
  <figure><img src="<?php echo wp_get_attachment_image_src(get_post_thumbnail_id( (int)$atts[\'id\']) )[0]?>" /></figure>
  <?php
}
else{ // display a gallery of attached images within  "max" attr.
  $images=get_attached_media( \'image\', (int)$atts[\'id\'] );
  if(count($images) > 0 ){
   ?>
   <div class="gallery">
   <?php
   $index=0;
   foreach($images as $image){
     if($index < (int)$atts[\'max\']){ //display image only if within max 
    ?>
    <figure><img src="<?php echo wp_get_attachment_url($image->ID)?>" /></figure>
    <?php
      $index ++;
     }
   }
 ?></div><?php
 }     
}
return ob_get_clean();
}
然后在wp编辑器中,您可以使用:

[postImages id=2387 featured=“true”]->仅显示post的特征图像#2387

  • [postmages id=2387 max=4]>显示附加到post#2387的4幅图像的库

  • 结束

    相关推荐

    ‘Posts’表不应存储绝对图像路径

    我在从网站制作沙盒时遇到了一些困难,其中之一是wordpress正在中注册图像的绝对路径posts.guid 字段:http://example.com/path/image.jpg我认为正确的方法应该是相对路径,即/path/image.jpg因此,如果我复制数据库并尝试在另一个域甚至子域中使用它,图像将不会出现。如何解决这个问题?