Correct attachment size

时间:2012-10-08 作者:Johann

我尝试在Wordpress中使用非常简单的幻灯片,但在尝试检索幻灯片的正确图像大小时遇到了问题。

我可以使用以下代码毫无问题地检索第一幅图像:

<?php if ( $attachments ) {
    $first_image = array_slice($attachments, 0, 1);
    $first_thumb = wp_get_attachment_url( $first_image[0]->ID, \'blog-thumb\', false );
    ?>
    <img src="<?= $first_thumb; ?>" alt="" title="" />
但是,我使用以下代码检索其余图像:

<?php foreach ($attachments as $attachment) { ?>
    <li><a href="<?= wp_get_attachment_url( $attachment->ID, \'blog-thumb\', false ); ?>"></a></li>
<?php } ?>
我能够检索图像,但检索图像的原始版本,而不是“博客拇指”维度。

我不知道我做错了什么。。。

以下是我检索附件的方式:

        <?php if ( $post->post_type == \'post\' && $post->post_status == \'publish\' ) {
                $attachments = get_posts( array(
                    \'post_type\' => \'attachment\',
                    \'posts_per_page\' => -1,
                    \'post_parent\' => $post->ID,
                    \'exclude\'     => get_post_thumbnail_id(),
                    \'orderby\'           => \'menu_order\',
                    \'order\'           => \'ASC\'  

                ) );
        ?>
我还添加了整个代码,所以大家可以查看整个情况:

        <?php if ( $post->post_type == \'post\' && $post->post_status == \'publish\' ) {
                $attachments = get_posts( array(
                    \'post_type\' => \'attachment\',
                    \'posts_per_page\' => -1,
                    \'post_parent\' => $post->ID,
                    \'exclude\'     => get_post_thumbnail_id(),
                    \'orderby\'           => \'menu_order\',
                    \'order\'           => \'ASC\'  

                ) );
        ?>

          <?php if ( $attachments ) { 
            $first_image = array_slice($attachments, 0, 1);
            $first_thumb = wp_get_attachment_image_src( $first_image[0]->ID, \'blog-thumb\', false );

          ?>    

        <div id="post-<?php the_ID(); ?>" <?php post_class() ?>>                

        <div class="rss-container">

            <div id="slideshow<?php the_ID(); ?>" class="rs-slideshow">
                <div class="slide-container">
                    <img src="<?php echo \'\' . $first_thumb[0] . \'\'; ?>" alt="" title="" />
                </div> 
                <ol class="slides">
                <?php foreach ($attachments as $attachment) { ?>
                  <li><a href="<?= wp_get_attachment_image( $attachment->ID, \'blog-thumb\'); ?>"></a></li>

                <?php } ?>
                </ol>
            </div>

            <!--<ul class="controls clearfix">
                <li><a href="#" class="rs-play-pause" data-control-for="slideshow<?php the_ID(); ?>">Click to Pause</a></li>
                <li><a href="#" class="rs-prev" data-control-for="slideshow<?php the_ID(); ?>">Previous Slide</a></li>
                <li><a href="#" class="rs-next" data-control-for="slideshow<?php the_ID(); ?>">Next Slide</a></li>
            </ul>-->

                        <?php } ?>
        <?php } ?>  

        </div> <!--rss-container-->

如上所述,我在尝试检索列表中正确的图像大小时遇到了困难,检索第一个图像的代码就像一个符咒。

谢谢你的帮助!

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

你需要echo 你的wp_get_attachment_image, 但由于此函数以的形式返回HTML对象,

<img src="path/to/image.jpg"/>
它将不起作用,因为您正试图使用href 锚的属性<a>

这是错误的,

<a href="<?= wp_get_attachment_image( $attachment->ID, \'blog-thumb\'); ?>"></a>
这是对的,

<a href="<?php echo wp_get_attachment_image_src( $attachment[0]->ID, \'blog-thumb\'); ?>"> 
<?php echo wp_get_attachment_image( $attachment->ID, \'blog-thumb\'); ?>
</a>
总之,像这样的东西有点整洁,尽管我们仍然在混合两个图像函数,可以简化为使用wp_get_attachment_image_src 但是,以下方法仍然有效,

foreach ($attachments as $attachment) {

    $src = wp_get_attachment_image_src( $attachment[0]->ID );

    $html = \'<a href="\'.$src.\'">\';
    $html .= wp_get_attachment_image( $attachment->ID, \'blog-thumb\') .\'</a>\';
    echo $html;
}

结束

相关推荐

images within style sheet

我希望有人能在这方面帮助我,因为这已经开始让我抓狂了。我已经搜索了好几个小时,想找到一种在我的样式表中放置图像路径的方法,但一直没有找到。路径不能是绝对路径或“主题相关”路径。解决问题的唯一方法是在html文件中添加以下内容:<style type=\"text/css\"> #menu .menu-drop .menu-label { background: url(<?php echo get_template_directory_uri().