【发布时间】:2020-07-14 14:37:00
【问题描述】:
我正在构建一个使用geoservices web service 的简单插件,我正在尝试根据其位置动态更改 WordPress 页面上的内容。我让它有点工作,但我的问题是它同时返回特定位置的文本和默认值。我知道这是因为我不止一次使用简码实例,但我不知道如何将其更改为仅显示特定于位置的内容,如果位置未设置或与简码参数不匹配,则回退到默认一个。我不想将“默认”添加为简码参数,因为它可能包含 HTML 或其他内容。
这是我的简码示例:
[geo city="Orlando"]<a href="#">555-123-6349</a>[/geo][geo city="Raleigh"]<a href="#">919-999-9999</a>[/geo][geo city="Default"]<a href="#">Default text here</a>[/geo]
因此,根据上述情况,如果用户来自奥兰多,所需的结果将显示奥兰多的电话号码,如果用户来自罗利,则显示罗利号码。否则,如果他们不是来自这些地方的任何一个,它将使用默认值。
这是我的简码:
function geo_services( $atts , $content = null ) {
// Attributes
extract(shortcode_atts(array(
'city' => '',
'state' => '',
), $atts));
require_once('geoplugin.class.php');
$geoplugin = new geoPlugin();
$geoplugin->locate();
if($city === $geoplugin->city){
return $content;
} elseif ($state === $geoplugin->region){
return $content;
} elseif ($city === 'Default') {
return $content;
}
}
add_shortcode( 'geo', 'geo_services' );
【问题讨论】: