我一直在尝试显示具有相同值的多个自定义字段,如果没有输入值,则不显示它们。这是我目前使用的一段代码,当用户还没有输入Instagram个人资料URL时,它会输出值。所有这些都是在自定义post类型的循环中发生的,否则就没有问题了。
所以,基本上,我正在寻找一种方法,只要存在一些值或不显示任何其他值,就可以显示尽可能多的值。在这种情况下,值始终是URL。
非常感谢。
$profiletwitter = get_post_meta($post->ID, \'profiletwitter\', true);
if ( ! empty( $profiletwitter ) ) { ?>
<span class=\'social-profile\'>
<a href="<?php echo esc_attr( $profiletwitter ); ?>" target=\'blank\'>
<img src=\'http://blogomanija.net/sajt/wp-content/themes/blogomanija/images/social/twitter-small.png\' />
</a>
</span><?php
}
最合适的回答,由SO网友:N00b 整理而成
<?php
// False: get all, true: get only first
// Use false if you want to get all, if you have only one, it doesn\'t break
$profile_twitter = get_post_meta( $post->ID, \'profiletwitter\', false );
// Let\'s check if there\'s any
if( ! empty( $profile_twitter ) ) { ?>
<span class=\'social-profile\'> <?php
// Check if an array -> has more than one
if( is_array( $profile_twitter ) ) {
// Loop through each twitter url
foreach( $profile_twitter as $single_twitter ) { ?>
<a href="<?php echo $single_twitter; ?>" target=\'blank\'>
<img src=\'http://blogomanija.net/sajt/wp-content/themes/blogomanija/images/social/twitter-small.png\' />
</a> <?php
}
}
// Not an array, it must be single (if it\'s correctly stored in db)
else { ?>
<a href="<?php echo $profile_twitter; ?>" target=\'blank\'>
<img src=\'http://blogomanija.net/sajt/wp-content/themes/blogomanija/images/social/twitter-small.png\' />
</a> <?php
} ?>
</span> <?php
} ?>
<小时>
More reading:
get_post_meta(),
is_array(),
foreach