0

我有一个查询/循环来显示作为简码工作的缩略图。我正在尝试在小部件中使用相同的查询/循环,除了缩略图之外,一切都在工作。

$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>

任何见解将不胜感激

更新:这仅不适用于单个页面的主页,这可以正常工作。

4

2 回答 2

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;
?>

谢谢。

于 2013-10-03T05:11:17.523 回答
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');

我相信这个技巧应该做到这一点。请试一试,让我知道它是否适合你!

于 2013-10-02T23:25:49.473 回答