WPML从原始帖子获取翻译后帖子的永久链接

时间:2018-02-07 作者:madhushankarox

我正在编写一个插件,如果访问者有德语IP,可以将其重定向到翻译后的页面。

  add_action( \'wpml_loaded\', \'geo_redirect_client\' );
    function geo_redirect_client() {
        define( \'IP_LANG\', \'de\' ); // This will be coming from an some IP to country code API
        global $sitepress;
        if( ICL_LANGUAGE_CODE != IP_LANG ) {
            $languages = $sitepress->get_ls_languages();
            if( isset( $languages[IP_LANG] ) ) {
                $url = (isset($_SERVER[\'HTTPS\']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
                $redirect_url = apply_filters( \'wpml_permalink\', $url, IP_LANG );
                //wp_redirect( $redirect_url, 301 );
                //exit;
       echo $redirect_url;
            }
        }
    }
但问题是wpml\\u permalink是不对的。

而不是获取www.mysite。com/de/kontakt/it正在访问www.mysite。通信/数据/联系人/

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

对于任何有类似问题的人。您可以使用wp, wp_head, wp_footertemplate_redirect 动作挂钩。

在这种情况下,template_redirect 动作钩解决了我的问题。

add_action( \'template_redirect\', \'redirect_visitor\' );
function redirect_visitor() {
    // Do your stuff
}

结束

相关推荐

How to replace permalinks

我已将wordpress项目导出并导入live server。现在的问题是,我将permalink结构作为“localhost”格式。当我单击网站中的任何链接时,它会将我重定向到localhost。我怎样才能改变这一点?我的htaccess文件如下所示<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /myproject/ RewriteRule ^index\\.php$ - [L] RewriteCo