使用WordPress循环将动态代码段转换为使用Post ID的静态代码段

时间:2017-09-30 作者:The WP Intermediate

<?php  
if (is_single()) { ?>
<?php $imvi = get_post_meta(get_the_ID(), \'t_puck_imvi\', true); ?>
<div class="class1" <?php if( \'none\' === $imvi) { ?> style="display:none;" <?php } ?>>
    <div class="<?php if( \'show_vi\' === $imvi  ||  \'show_im\' === $imvi) {echo \'video\';} ?>">
        <?php if( \'show_vi\' === $imvi || \'show_vint\' === $imvi ) { ?>
            <div>
            <?php
                    // some code here
             ?>
        </div>
        <?php } ?>
        <?php if( \'show_image\' === $imvi || \'show_image_notext\' === $imvi ) {
            the_post_thumbnail( \'large\');
        }
        ?>
    </div>  
</div>
<?php } ?>
上面是一段以单个方式执行的代码。WordPress循环中的php。一切都好,没有问题。

但我想做点别的。

相反,我想让这段代码在首页的某个地方执行,但不是在循环中执行,而是基于某个特定的帖子。所以我认为我们需要使用那个帖子的ID,对吗?

所以我相信秘密就在这里:

<?php $imvi = get_post_meta(get_the_ID(), \'t_puck_imvi\', true); ?>
你能指导我如何实现这个w/o循环吗,但是通过一些特定的Post ID。

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

将动态代码转换为静态代码是一项非常简单的任务。这是另一种复杂的方式。

任何可以接受的WordPress函数get_the_ID(), 也可以接受字符串作为ID。有些甚至可以接受数组。

所以,只要转动

get_post_meta(get_the_ID(), \'t_puck_imvi\', true);

get_post_meta( 123 , \'t_puck_imvi\', true);
将完成这项工作。

注意,并非所有可用于循环的函数都接受post ID。例如the_post_thumbnail_url() 只接受大小作为其输入的函数。在这种情况下,最有可能使用相同的函数,例如get_the_post_thumbnail_url().

结束

相关推荐

仅在生产服务器上使用GET_POSTS/orderby时,POST未按正确的字母顺序或ID顺序显示

我有一个页面,列出了一些自定义帖子,但它们没有按正确的字母顺序显示。作为测试,我还尝试按ID的顺序列出它们,但它们的顺序也不正确。当它被列为ID时,它们看起来好像分成了3组在4000年代的高位数字,低于200,然后是3000,这很奇怪。它在我的本地服务器上运行良好。在Wordpress后端也可以进行订购。当我在1&;上将站点移动到新的托管包时,问题似乎发生了;1、以前是否有服务器特定的订购问题?我制作了两个测试页面,显示了标题和ID(顺序错误)ID顺序的简单列表:http://www.realpat