加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何用不同的语言将页面分享到facebook / twitter?

发布时间:2020-12-13 13:26:02 所属栏目:PHP教程 来源:网络整理
导读:我正在使用codeigniter,语言由会话决定. 我写了元数据,facebook / twitter抓取数据并共享页面: echo "meta name='twitter:card' content='summary' /"; echo "meta property='og:title' content='" . $video-{set_lang("title")} . "' /"; echo "meta prope
我正在使用codeigniter,语言由会话决定.

我写了元数据,facebook / twitter抓取数据并共享页面:

echo "<meta name='twitter:card' content='summary' />";
        echo "<meta property='og:title' content='" . $video->{set_lang("title")} . "' />";
        echo "<meta property='og:description' content='" . $video->{set_lang("description")} . "' />";
        echo "<meta property='og:image' content='" . (isset($video->image_url) ? site_url("thumbnail/" . $video->image_url) : $video->thumbnail) . "' />";

set_lang函数用于检查会话,如下所示:

function set_lang($var) {
    $CI = & get_instance();
    $lang = $CI->session->userdata('site_lang');
    if ($lang == "english") {
        return $var;
    } else if ($lang == "zh_tw") {
        return $var . "_tw";
    } else if ($lang == "zh_cn") {
        return $var . "_cn";
    }
}

共享功能在浏览器中运行良好,但是,我想通过移动应用程序分享链接.由于应用程序不包含会话,因此无法检查语言.另外,如果我将参数放在链接中,例如.

http://example.com/video/view/1/english

然后我的共享链接也将修复该语言.

有任何想法吗 ?非常感谢您的帮助.

如果您将链接中的语言信息放在http://example.com/video/view/1/english这样的链接中,那么控制器可以将语言信息作为参数(如果您提到它会有所帮助)什么是这里的控制器,但让我们说它是view()),并使用它,如下所示:
function view($param1,$lang = false){

}

然后你可以修改函数set_lang(),取两个参数,$var(原始的)和$lang:

function set_lang($var,$lang = false){
   if(!$lang){
       $CI = & get_instance();
       $lang = $CI->session->userdata('site_lang');
   }
   if ($lang == "english") {
       return $var;
   } else if ($lang == "zh_tw") {
       return $var . "_tw";
   } else if ($lang == "zh_cn") {
       return $var . "_cn";
   }
}

这样,如果在url中设置语言,则会忽略$CI-> session-> userdata(‘site_lang’).

现在,如果你想将$lang传递给你的视图,你可以这样做:

function view($param1,$lang = false){
     $local['lang_by_url'] = $lang;   
     $this->load->view('the_view',$local);
}

在你看来:

echo "<meta name='twitter:card' content='summary' />";
echo "<meta property='og:title' content='" $video->{set_lang("title",$lang_by_url)} . "' />";
...
...

这有点hacky,但它应该工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读