我有一个查询/循环来显示可用作短代码的缩略图。我试图在一个小部件中使用相同的查询/循环,一切都与缩略图分开。
$img_query = new WP_Query(array('post_type' => 'user_images'));
if($img_query->have_posts()){
$out = "<ul class='user_images'>";
while ($img_query->have_posts()){
$img_query->the_post();
$img_id = get_the_ID();
$img_event = get_post_meta($img_id,'_event_link',true);
$image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'thumbnail');
$out .= "<li>
<a href='".get_permalink($img_event)."'><img src='".$image_url[0]."' /></a>
<div class='imageCaption'>
<p>".get_the_title()." @ ".get_the_title($img_event)."</p>
</div>
</li>";
}
$out .= "</ul>";
}else{
$out .= "No Images";
}
echo $out;
我尝试了几种不同的方法来获取所有女巫未能输出任何内容的缩略图。
我得到的输出看起来像这样。
<ul class="user_images">
<li>
<a href="http://localhost"><img src=""></a>
<div class="imageCaption">
<p>title @ title</p>
</div>
</li>
</ul>
非常感谢任何见解
更新:这只能在单页的主页上工作,这样可以正常工作。
答案 0 :(得分:1)
试试这个:
<?php
global $post;
$pageDetails = get_post( $post );
$img_query = new WP_Query(array('post_type' => 'user_images'));
if($img_query->have_posts()){
?>
<ul class='user_images'>
<?php
while ($img_query->have_posts()){
$img_query->the_post();
$img_id = $pageDetails->ID;// get_the_ID();
$img_event = get_post_meta($img_id,'_event_link',true);
//$image_url = if ( has_post_thumbnail()){the_post_thumbnail();}//wp_get_attachment_image_src( get_post_thumbnail_id(), 'thumbnail');
?>
<li>
<a href="<?php the_permalink(); ?>">
<?php
if ( has_post_thumbnail()){ the_post_thumbnail(); }
?>
</a>
<div class='imageCaption'>
<p><?php get_the_title(); ?> @ <?php get_the_title($img_id); ?></p>
</div>
</li>
<?php } ?>
</ul>
<?php
}else{
echo "No Images";
}
//echo $out;
?>
感谢。
答案 1 :(得分:0)
您可以尝试手动将$post_id
传递给get_post_thumbnail_id()
功能。正如您在WordPress' Codex所看到的,如果没有给出帖子ID,此函数会尝试从当前帖子中获取ID。即使我不能告诉你究竟是什么问题,我想这是 问题所在。
所以尝试替换
$img_id = get_the_ID();
// ...
$image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'thumbnail');
的
$img_id = $img_query->get_the_ID();
// ...
$image_url = wp_get_attachment_image_src( get_post_thumbnail_id($img_id), 'thumbnail');
我相信这个伎俩应该这样做。请试一试,让我知道它是否适合您!