Я создаю простой плагин, который использует веб-сервис geoservices , и я пытаюсь динамически изменять содержимое на странице WordPress в зависимости от их местоположения. У меня он немного работает, но моя проблема в том, что он возвращает как текст, указывающий местоположение c, так и значение по умолчанию. Я знаю это, потому что я использую экземпляр шорткода более одного раза, но я не знаю, как изменить его, чтобы ТОЛЬКО показывать содержимое c с указанием местоположения, и если местоположение не установлено или не соответствует параметрам шорткода, тогда падение вернуться к умолчанию. Я не хочу добавлять «default» в качестве параметра шорткода, потому что он может содержать 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' );
А вот что происходит, когда я использую приведенный выше пример шорткода: введите описание изображения здесь