我无法通过标题&获取图片附件。在列表中的Wordpress页面上摘录。我正在使用新的WP_Query来生成列表,其中包含来自特定类别的3个帖子。在循环内部,我试图获取每个帖子的第一张图片,并使用' get_children'来检索他们的图片ID。数组(帖子没有精选图片,所以我不能使用the_post_thumbnail)。使用console.log,我可以看到我至少获取列表中第一个项目的图像URL,但不能获取其他项目的URL。即使是我得到的那个,我也无法使用wp_get_attachment_thumb_file()显示它。这是我到目前为止的代码:
<div class="inner-left">
<ul class="blog-posts-ul">
<?php
global $wp_query;
$wp_query = new WP_Query(array('order' => 'DESC', 'posts_per_page' => 3, 'cat' => '21,23,689,741,1589'));
if (have_posts()) : while (have_posts()) : the_post(); ?>
<li>
<?php $attachment = get_children( array('post_parent' => get_the_ID(), 'post_type' => 'attachment', 'post_mime_type' => 'image' ) );
if ( $attachment ) {
$attachment = current( $attachment );
$image_url = wp_get_attachment_thumb_url( $attachment->ID );
$attachment_id = attachment_url_to_postid( $image_url );
echo '<script>console.log("thumb: "' . $image_url . ')</script>';
}; ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><?php the_excerpt(); ?>
<?php wp_get_attachment_thumb_file( $attachment->ID ); ?>
</li>
<?php endwhile; endif; ?>
</ul>
<?php // Reset Query
wp_reset_query(); ?>
</div><!-- inner-left -->
如果您想查看,测试网站位于http://testsite.humortimes.com/。向下滚动,它被格式化为3个方格,位于“最新幽默时代”新闻头条新闻之下。部分。现在,它的格式不是很好,我打算有两个专栏,只有一个专栏。
任何帮助将不胜感激。谢谢。
答案 0 :(得分:0)
停止使用控制台日志并开始使用var_dump($ image_url);这将打印您在该元素上直接打印的任何内容。
我不明白为什么你不能使用缩略图?
答案 1 :(得分:0)
最后发现了一些会返回图像附件缩略图的内容(一个不是特色图片,因此使用the_post_thumbnail不可用):
wp_get_attachment_image( $attachment_id, 'thumbnail' )
我可以发誓我以前尝过那个,但无论如何,它现在正在工作,哈利路亚。
但是,我留下了每个列表项<li>
使用相同图像的问题。 (循环围绕列表并位于周围的<ul>
内)。
然后我在Function Reference/get children找到了一些关于重新键入数组的好信息,这似乎使得它至少尝试更新每个列表项的缩略图。但是,我没有得到第一个以外的图像。那么,为什么不更新?
完整代码现在:
<div class="inner-left">
<ul class="blog-posts-ul">
<?php
global $ht_query;
$ht_query = new WP_Query(array('order' => 'DESC', 'posts_per_page' => 3, 'cat' => '21,23,689,741,1589'));
if (have_posts()) : while ( $ht_query->have_posts() ) : $ht_query->the_post();
if ( has_post_thumbnail() ) {
$image_attach = the_post_thumbnail();
} else {
$args = array('post_parent' => $post->ID, 'post_type' => 'attachment', 'post_mime_type' => 'image', 'numberposts' => 1, 'order'=> 'DESC' );
$attachments = get_children($args,ARRAY_A);
$rekeyed_array = array_values($attachments);
$child_image = $rekeyed_array[0];
$image_attach = wp_get_attachment_image( $child_image['ID'], 'thumbnail' );
};
?>
<li>
<a href="<?php the_permalink(); ?>"><?php echo $image_attach; ?><?php $title = the_title('','',false); if(strlen($title) > 50): echo trim(substr($title, 0, 55)).'...'; else: echo $title; endif; ?></a><?php the_excerpt(); var_dump ($child_image['ID']); ?>
</li>
<?php endwhile; endif; ?>
</ul>
<?php // Reset Query
wp_reset_query(); ?>
</div>
最后的var_dump表明attachment_id每次都没有更新,因为它为第一个后面的每个连续项提供了“NULL”。
非常感谢任何帮助。
答案 2 :(得分:0)
经过很多挫折之后,我发现这个nifty function正是我想要的。它查询数据库以找到帖子的第一张图片,我猜这是我错过的关键。它还首先测试特色图像,因此也需要处理。我把这个函数放在我的子函数文件中,只需在页面上需要时调用它。
如果您使用它,请注意您需要添加$size = 'thumbnail';
,因为虽然她的描述说它会返回缩略图,但它会返回完整尺寸的图像。但是,在整个函数中使用此变量,因此您只需要为其赋值。
谢谢,Amberweinberg!