在循环之外使用自定义投递类型的图像大小

时间:2016-09-26 作者:Mathias

我想在自定义帖子类型上使用图像大小(已启用特征图像)。

在里面functions.php 我补充道:

add_theme_support( \'post-thumbnails\' );
add_image_size( \'my-non-working-size\', 600, 300, true );
自定义帖子类型称为“homeslide”,因为我使用它在主页上构建旋转木马滑块。要获取所有幻灯片,我需要:

$args = array(
    \'post_type\'   => \'homeslide\'
);
$mypages = get_posts( $args );
我循环浏览结果,对于每一张幻灯片,我想输出自定义大小的特色图像。这是我的尝试:

the_post_thumbnail($page->ID, "my-non-working-size");
这行不通。它会输出特色图像,但它们不是自定义大小,也不会被裁剪。然而,同样的方法也适用于主题while( have_posts() )

我做错了什么?

编辑:我对输出特色图片的看法是错误的。它实际上什么都没做。虽然has_post_thumbnail( $page->ID ) 退货true 每一张幻灯片。

编辑3:

我的全部代码用于尝试显示特色图像:

<?php
    $args = array(
        \'post_type\'   => \'homeslide\'
    );
    $mypages = get_posts( $args );
    ?>
    <div class="your-class">
        <?php
        foreach( $mypages as $page ) {
            ?><div>
            <?php

            $content = $page->post_content;
            if ( ! $content ) // Check for empty page
                continue;

            ?>
            <h2><a href="<?php echo get_page_link( $page->ID ); ?>"><?php echo $page->post_title; ?></a></h2>
            <div class="entry"><?php
                if ( has_post_thumbnail( $page->ID )  ) {?>
                    <div class="col-left">
                       <?php the_post_thumbnail_url($page->ID , \'my-non-working-size\'  ); ?>

                    </div><div class="col-right">
    <?php

    ?></div>
                    <?php
                }
                echo $content; ?></div>
    </div>
        <?php }  ?>

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

你在这方面做错了

the_post_thumbnail($page->ID, "my-non-working-size");
用于the_post_thumbnail() 您不需要传递post ID,只需传递size和attr。More Info - the_post_thumbnail()

这样试试吧the_post_thumbnail("my-non-working-size"); 未通过岗位ID。

你的标记搞砸了,所以我不确定你的实际标记结构。下面是一个工作示例,并对其进行了测试。

<?php
$args = array(
    \'post_type\'   => \'homeslide\'
);
$mypages = get_posts( $args );
?>
<div class="your-class container">
<?php
foreach ( $mypages as $post ) : setup_postdata( $post ); ?>
<div>
    <h2><a href="<?php echo get_the_permalink(); ?>"><?php the_title(); ?></a></h2>
    <div class="entry">
        <?php if ( has_post_thumbnail() ) { ?>
            <div class="col-left">
            <?php the_post_thumbnail( \'my-non-working-size\'  ); ?>
            </div>
            <div class="col-right">
            <?php // ?>
            </div>
        <?php
        } // end if has_post_thumbnail();
        the_content(); ?>
    </div>
</div>
<?php endforeach; 
wp_reset_postdata();?>
</div>
如果你想了解更多关于get_posts

相关推荐

Images with overlay

我有一些图片在一个容器中,我想添加一个覆盖和图标。这不是现成的,但我找到了一些有用的代码:HTML:<div class=\"main\"> <span class=\"featured\"><img src=\"http://joshrodg.com/IMG_001-258x258.jpg\" title=\"\" alt=\"\"></span> </div> CSS:.featured {