首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用于WordPress页面模板的If/Else语句中的永久链接post缩略图?

用于WordPress页面模板的If/Else语句中的永久链接post缩略图?
EN

Stack Overflow用户
提问于 2018-06-15 04:31:24
回答 1查看 44关注 0票数 0

我正在尝试超链接WordPress博客帖子的缩略图,以链接到其单独的博客帖子(固定链接)。下面代码中的文本链接可以做到这一点,但图像部分在if/else语句中。

代码:

代码语言:javascript
复制
<div class="carousel-inner">
        <?php while( $query->have_posts() ) { $query->the_post(); $post_count++; ?>

            <div class="item <?php if( $post_count == 1 ) echo 'active'; ?>">

                        <?php 
                            if ( has_post_thumbnail() ) { 
                    //Permalink needed below
                     the_post_thumbnail( 'slider', array( 'class' => 'img-fluid' ) ); 
                                    }
                                ?>
                                <div class="carousel-caption">
   <h6><a class="headline-links" href="<?php echo get_permalink(); ?>"><?php the_title() ?></a></h6>
                                    <p><?php echo excerpt( 15 ); ?></p>
                                </div>
                            </div>
                        <?php } //wp_reset_postdata(); ?>
                        </div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-15 04:53:49

将值存储在变量中并没有错。如果你只需要固定链接一次,使用echo get_permalink();the_permalink();就可以了。然而,由于您需要在多个地方使用它,因此不将其定义为变量,而是更频繁地调用相同/相似的函数,这会增加开销。虽然在这个规模上,它不会有太大影响,但在更大的规模上,它肯定会产生影响。

同样,您可以实际删除has_post_thumbnail(),只需检查get_the_post_thumbnail()是否返回真值。

最后一个注意事项,您确定应该将wp_reset_postdata();注释掉吗?

下面是我如何使用您提供的代码来实现这一点:

代码语言:javascript
复制
<div class="carousel-inner">
    <?php while( $query->have_posts() ) { $query->the_post(); $post_count++; ?>
    <div class="<?= $post_count == 1 ? 'item active' : 'item'; ?>">
        <?php
            $permalink = get_permalink();

            if( $thumbnail = get_the_post_thumbnail( null, 'slider', array( 'class' => 'img-fluid' ) ) ){
                echo "<a href='$permalink'>$thumbnail</a>";
            }
        ?>
        <div class="carousel-caption">
            <h6>
                <a class="headline-links" href="<?= $permalink; ?>"><?php the_title() ?></a>
            </h6>
            <p><?= excerpt( 15 ); ?></p>
        </div>
    </div>
    <?php } //wp_reset_postdata(); ?>
</div>

但是,如果您坚持不使用变量(您不应该这样做!)然后,您可以使用以下命令:

代码语言:javascript
复制
<div class="carousel-inner">
    <?php while( $query->have_posts() ) { $query->the_post(); $post_count++; ?>
    <div class="item <?php if( $post_count == 1 ) echo 'active'; ?>">
        <?php   
            if( has_post_thumbnail() ){
                echo '<a href="'. get_permalink() .'">';
                    the_post_thumbnail( 'slider', array( 'class' => 'img-fluid' ) ); 
                echo '</a>';
            }
        ?>
        <div class="carousel-caption">
            <h6>
                <a class="headline-links" href="<?php the_permalink(); ?>"><?php the_title() ?></a>
            </h6>
            <p><?php echo excerpt( 15 ); ?></p>
        </div>
    </div>
    <?php } //wp_reset_postdata(); ?>
</div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50865483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档