Wordpress - 将do_shorcode()的值返回值赋给变量

时间:2017-06-06 06:41:03

标签: php wordpress plugins

我正在使用IP2Location Tags插件通过使用IP地址获取用户的位置。我想将do_shorcode()返回的值赋给PHP变量。我试过这段代码:

<?php
$region = do_shortcode('{ip:regionName}');     
echo ord($region);
?>

并使用ord()打印ASCII值。 echo ord($region);返回ASCII值123(即{)。获取$region中每个字符的ASCII值后,我发现$region包含值{ip:regionName},但在使用echo $region;时会打印Maharashtra

所以我的问题是如何将Maharashtra作为$region;中的值,这将有助于我比较字符串。

1 个答案:

答案 0 :(得分:1)

由于此插件使用过滤器替换关键字,do_shortcode什么都不做。我很惊讶你会通过回显$ region来获得Maharashtra但是如果你在the_content中回应它,那么过滤器可能会应用。

要获取位置,您只需从插件中调用该类并调用必要的函数即可。

<?php
    $ip2l = new IP2LocationTags();
    $ip2l_location = $ip2l->get_location($_SERVER['REMOTE_ADDR']);
    $region = $ip2l_location['regionName'];
?>

$region将是regionName。

$ip2l_location将包含整个位置值,包括countryCode,countryName等,它们存储在关联数组中。