如果自定义字段为空,则无法隐藏Google地图

时间:2013-02-24 作者:Richard Ascough

我使用以下内容使用hotel\\u地址自定义字段显示google地图。

<iframe width="440" height="400" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?q=<?php the_field(\'hotel_address\'); ?>&amp;iwloc=&amp;output=embed"></iframe><br /><small>
它工作得很好,获取酒店地址并显示地图,但我想隐藏这是hotel\\u地址为空。

我尝试了以下方法

<?php
    $map = get_post_meta($post->ID, \'hotel_address\', true);
    if ( $map ) {
        echo \'<iframe width="440" height="400" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?q="\'.$map.\'"&amp;iwloc=&amp;output=embed"></iframe><br /><small>\';
        echo \'\';
    }
?>
并且可以使用echo$map确认$map正在提取地址,但它只显示一个没有任何映射的空白框。

有什么想法吗?理查德

5 个回复
SO网友:fischi

我会尽力的

if ( $map && $map != "" )
设置变量时,也可以包含空字符串。

SO网友:s1lv3r

要找出变量的内容,您应该选择var_dump() 结束echo 因为它提供了变量的类型和内容。

您还可以尝试将变量类型转换为布尔值,因为空字符串也将计算为true 在一个简单的if中,但是var_dump((bool) "");会给你false.

if( (bool)$map) {

SO网友:Shahinul Islam

$map=get\\u post\\u meta($post->ID,“hotel\\u address”,true);

可以返回空值,首先需要var\\u dump($map)以确保hotel\\u地址正常工作

如果$map为空,请确保$post->ID有效。

试试这个

if( !empty( $map )) {  
或者试试这个

$map = get_the_field(\'hotel_address\');
echo (!empty($map)) ? \'<iframe width="440" height="400" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?q=\'.$map.\'&amp;iwloc=&amp;output=embed"></iframe><br /><small>\' : \'\'; 

SO网友:Trilok

您可以使用以下代码。这可能对你有用

<?php
    $map = get_post_meta($post->ID, \'hotel_address\', true);
    if (isset($map) && !empty($map)) {
        echo \'<iframe width="440" height="400" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?q="\'.$map.\'"&amp;iwloc=&amp;output=embed"></iframe><br /><small>\';
        echo \'\';
    }
?>

SO网友:viral m

注意如果此代码不起作用,请首先执行:

请添加wp_reset_query(); 在此代码之前执行while循环,然后尝试以下操作

$map = CFS()->get(\'hotel_address\'); 

if($map){

//  show map 

}

结束

相关推荐