在配置文件WordPress/BuddyPress中显示国家/地区标志

时间:2013-05-15 作者:Tom

希望有人能帮我解决一个关于在会员姓名旁边显示国旗的问题。现在,我正在使用一个包含国家的自定义元,如果满足条件,则回显国旗。与其写出数百行代码以这种方式显示一个标志,还有没有一种更有效或更智能的编码方式。我无法想象在members标头中显示100行代码。php可以很好。

下面是我用来显示韩国国旗的代码:

<?php

global $bp;

$korea = get_usermeta( $bp->displayed_user->id, \'location\' );

if( $korea == \'korea\' );

echo \'<img src="http://www.mydomain.com/flags/KR.gif" border=0>\';
?>
任何帮助都将不胜感激。

汤姆

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

听起来您正试图将这些位置值用于它们不打算用于的对象,因此您需要以某种方式转换这些值。

您可以重命名.gifs匹配位置值,然后您可以执行。。。

if( !empty($korea) ) {
    echo \'<img src="http://www.mydomain.com/flags/\'.$korea.\'.gif" border=0>\';
}
请注意我对您的代码所做的更改。你有if( $korea == \'korea\' );. 那个; 结束了该行,因此您的条件没有执行任何操作。您的代码已损坏。那个img 总是echoes。(我加了括号。少括号的条件句会把你绊倒。)

您可以做的另一件事是将位置值“映射”到一个国家。也就是说,构建一个数组。。。

 $countries = array(
   \'KR\' => \'Korea\',
   // ...
 }
然后用它抓住你的.gifs

function convert_location_wpse_99541($location) {
  $countries = array(
   \'Korea\' => \'KR\',
   // ...
  }
  if (isset($counties[$location])) {
   return $counties[$location];
  }
}
// ...
$gif = convert_location_wpse_99541($korea)
if( !empty($gif) ) {
    echo \'<img src="http://www.mydomain.com/flags/\'.$gif.\'.gif" border=0>\';
}

结束

相关推荐