<?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ループ内のsingle.phpで実行されるコードです。すべて問題ありません。
しかし、私は他の何かを達成したいです。
代わりに、このコードをフロントページのどこかで実行するようにしたいが、ループ内ではなく、特定の投稿に基づいて実行したい。だから私たちはその記事のIDを使う必要があると思いますよね?
だから秘密はここのどこかにあると思う。
<?php $imvi = get_post_meta(get_the_ID(), 't_Puck_imvi', true); ?>
このw/oループを実現する方法を教えてもらえますか。
動的なコードを静的なコードに変換するのはとても簡単な作業です。それはもう一つの複雑な方法です。
get_the_ID()
を受け入れることができるWordPress関数は、IDとして文字列を受け入れることもできます。配列を受け入れるものもあります。
だから、単に回す
get_post_meta(get_the_ID(), 't_Puck_imvi', true);
に
get_post_meta( 123 , 't_Puck_imvi', true);
仕事をします。
ループ内で使用できるすべての関数が投稿IDを受け入れるわけではありません。例としては、 the_post_thumbnail_url()
関数があります。これは、入力としてサイズのみを取ります。そのような場合は、 get_the_post_thumbnail_url()
のように、同等の関数を使用するのが最も可能性があります。