【问题标题】:Custom content for Wordpress site depending on visitor locationWordPress 网站的自定义内容取决于访问者的位置
【发布时间】:2013-11-02 01:31:19
【问题描述】:

我为我的客户建立了一个 Wordpress 网站。

下一步,我的客户希望他的网站显示不同的电话号码,并根据网站访问者的位置在某些页面上自定义内容。

例如,如果网站的访问者在洛杉矶,则联系电话号码将是 (323)xxx-xxxx ,但如果访问者在比佛利山庄 - 电话号码将更改为 (310)- yyy-yyyy。

对于页面的内容也是如此:他想将网站的副本自定义到访问者的位置。因此,在上面的示例中,如果用户从 Beverly Hills 访问该站点,则需要将整个站点中的“Los Angeles”一词替换为“Beverly Hills”。

我在 Google 上四处搜索,但没有看到如何最有效地完成这项工作。

提前感谢您抽出宝贵时间帮助我解答问题。

【问题讨论】:

  • 您可能希望将其发布到 WordPress 堆栈:wordpress.stackexchange.com
  • @CMF 解决方案在理论上是正确的,但在现实中很难实施。它不是因为解决方案本身——而是因为你需要的分辨率(它不是一个国家,也不是州——你想要“邻里”)太高了。无法保证比佛利山庄的用户一定会使用比佛利山庄的 IP。我还建议使用谷歌地理定位来反转 IP 地址 - 但仍然 - 它有时很可能会产生错误的结果。我对你的建议是列出所有数字:-)

标签: wordpress location


【解决方案1】:

可以根据访问者的 IP 地址确定位置,如果您有 IP 位置数据库就可以了。要在 WordPress 上实现它,您应该制作一些 PHP 函数并将其放在您的 WordPress 模板中。假设您要添加的内容在标题中,请编辑您的 header.php 模板以包含您编写的 PHP 函数/代码。

在整个网站上进行此操作可能会更复杂,但我相信并确信可以通过过滤器和许多其他方式来完成。对于页面内容(帖子/页面),您可以使用“the_content”过滤器。一个简单的例子:

在你的 function.php 模板上,添加如下内容:

add_filter( 'the_content', 'filter_the_content' );
function filter_the_content( $content ) {
    if ( $location == 'Beverly Hills' )
    str_replace( 'Los Angeles', 'Beverly Hills', $content );

    return $content;
}

这只是一个例子,如果你使用上面的例子,它将不起作用。

反过来,使用“短代码”。您可以简单地添加一个短代码,如[location]。添加创建函数来替换简码以显示位置。

这只是对您可以使用 WordPress 做什么的简要说明。请务必查看代码:http://codex.wordpress.org/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-07
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多