是否仅显示基于访问者所在国家/地区的特定帖子?

时间:2011-08-25 作者:lulalala

理论上是否可能具有以下特性?

每个帖子都有国家代码。当访客进来时,系统将确定访客的国家代码。然后,当页面呈现时,仅显示带有该国家/地区代码的帖子。这也需要影响小部件/站点搜索等。

我被要求对此进行评估。我认为这会导致if语句到处都是,在循环中,我也需要修改小部件。总而言之,我认为这是可行的,但很困难,并且会使整个代码库无法维护。然而,我想对此有所了解,因为我只有主题方面的经验,而没有插件开发方面的经验。

此外,我不知道如何更恰当地标记它。欢迎任何建议。

UPDATE:我看了一下\'Country Filter\' 插件,很好,但在内容级别而不是帖子级别进行过滤。我也在看add_filter(request,...) 看看是否可以从根本上做到这一点。

2 个回复
最合适的回答,由SO网友:lulalala 整理而成

谢谢Sisir!这是很有可能的,至少我认为我有三分之二的路要走。通过使用pre_get_post 操作I成功筛选帖子。这是动作钩,比add_filter(request,...). 我仍然需要解决一些问题,比如过滤掉最近与目标帖子相关的评论链接,以及仍然显示的单个帖子页面,但我认为这应该是可能的。

SO网友:Wyck

理论上是否可能具有以下特性?

是的,从理论上讲,有几种地理定位API存在,你必须支付可靠的API,比如MaxMind。

后一部分听起来很奇怪,如果您想要相同的内容,那么只需使用语言文件即可。

如果出于某种疯狂的原因,你想在每个国家提供不同的内容,这将是一项艰巨的任务,你很可能会想在每个国家创建自己的API或自定义页面,你不需要10亿条If语句。

结束

相关推荐

Switch_to_Blog()中的SQL SELECT出现问题

我正在使用switch\\u to\\u blog()和restore\\u current\\u blog()跨多站点安装执行一些功能。我尝试做的一件事是使用get\\u row()选择一个非常特定的帖子。我的函数如下所示:$prefix = $wpdb->prefix; $tbl = $prefix; $product = $wpdb->get_row(\"SELECT * FROM {$tbl}_posts WHERE ID = 4253\"); print_r(