Php 如何替换文本&;短代码输出中的URL

Php 如何替换文本&;短代码输出中的URL,php,wordpress,post,geolocation,geoip,Php,Wordpress,Post,Geolocation,Geoip,我正在尝试向我的WordPress博客添加一个自定义功能,如果访问者的地理位置位于加拿大,则在所有帖子文本和/或超链接中将“bigalspets.com”替换为“bigalspets.ca” 如果访问者IP=Canadian,则在所有呈现的帖子内容(包括其他插件生成的链接和内容!)中将“bigalspets.com”替换为“bigalspets.ca” 我正在使用获取GeoIP信息,使用代码片段插件添加仅在网站前端运行的自定义函数 到目前为止,我的职能是: function replace_

我正在尝试向我的WordPress博客添加一个自定义功能,如果访问者的地理位置位于加拿大,则在所有帖子文本和/或超链接中将“bigalspets.com”替换为“bigalspets.ca”

  • 如果访问者IP=Canadian,则在所有呈现的帖子内容(包括其他插件生成的链接和内容!)中将“bigalspets.com”替换为“bigalspets.ca”
我正在使用获取GeoIP信息,使用代码片段插件添加仅在网站前端运行的自定义函数

到目前为止,我的职能是:

function replace_if_canada( $text ) {
   $geoip = geoip_detect2_get_info_from_current_ip();
   if ( $geoip->country->isoCode == 'CA' ) {
     return str_replace('bigalspets.com', 'bigalspets.ca', $text);
   }
}

function replace_if_canada_shortcodes( $output ) {
   $geoip = geoip_detect2_get_info_from_current_ip();
   if ( $geoip->country->isoCode == 'CA' ) {
     echo str_replace('bigalspets.com', 'bigalspets.ca', $output);
   }
}

add_filter('the_content', 'replace_if_canada', 999);
add_filter('do_shortcode_tag', 'replace_if_canada_shortcodes', 999);
这是一个WP帖子的url,该函数应该在这里工作:

问题:我的代码中的“如果加拿大的话替换短代码”部分不起作用,即代码替换正常帖子内容中的文本/URL,但不替换Image Map Pro短代码输出中的文本/URL

如果将鼠标悬停在内容体中图像地图上的一个小“i”图标上,您将看到产品URL。这些并没有从.com变为.ca

如何使函数应用于所有帖子和页面上的所有内容。请帮忙(