2个类似的PHP,一个工作一个没有?

时间:2014-05-26 08:48:34

标签: php wordpress if-statement

我在一个房产网站上有一些字段,用英语和...根据值,翻译它(如果选择了除英语之外的其他语言)。

这段代码很好用:

<?php if(get_post_meta($post->ID,'prop_parking',true) && $prop_parking):
    $prop_parking_meta = get_post_meta($post->ID,'prop_parking',true);
    if ($prop_parking_meta == 'Yes') {
        $prop_parking_meta = '<!--:en-->Yes<!--:--><!--:es-->Sí<!--:--><!--:ru-->да<!--:-->';
    }
    elseif ($prop_parking_meta == 'No') {
        $prop_parking_meta = '<!--:en-->No<!--:--><!--:es-->No<!--:--><!--:ru-->нет<!--:-->';
    } ?> 
         <li>
           <p><?php echo PROP_PARK_CSTM;?>:</p><p> <?php _e( $prop_parking_meta ); ?></p>
         </li>
<?php endif; ?>

我以套装语言回复Yes,但在此字段中我不会(我只是看到YesNo):

<?php if(get_post_meta($post->ID,'prop_garage',true) && $prop_garage):
    $prop_garage_meta = get_post_meta($post->ID,'prop_garage',true);
    if ($prop_garage_meta == 'Yes') {
        $prop_garage_meta = '<!--:en-->Yes<!--:--><!--:es-->Sí<!--:--><!--:ru-->да<!--:-->';
    }
    elseif ($prop_garage_meta == 'No') {
        $prop_garage_meta = '<!--:en-->No<!--:--><!--:es-->No<!--:--><!--:ru-->нет<!--:-->';
    } ?>        
          <li>
           <p><?php echo PROP_GARG_CSTM;?>:</p><p> <?php _e( $prop_garage_meta ); ?></p>
          </li>
<?php endif; ?>

我缺少哪些明显的东西? :(谢谢!

1 个答案:

答案 0 :(得分:2)

我不知道为什么有时会在qTranslate中出现此问题,但有两种方法可以解决它:

  1. 使用短代码表示法

    $prop_garage_meta = '[:en]Yes[:es]Sí[:ru]да';
    
  2. 应用the_content过滤器

    $prop_garage_meta = apply_filters( 
        'the_content', 
        '<!--:en-->Yes<!--:--><!--:es-->Sí<!--:--><!--:ru-->да<!--:-->' 
    );