1

Joomlaで多言語サイトを構築しています。

すべての記事の最後に、ソーシャル ボタンが表示されます。Facebookのいいねボタンの現在のページを取得するために、このコードがありました。

<?php
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .=   $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
return $pageURL;
}
?>

<div class="fb-like" data-href="<?php echo curPageURL(); ?>" data-width="450" data-show-faces="false" data-send="true"></div>

問題は次のとおりです。多言語サイトを構築すると、www.example.com/es と www.example.com/en が表示され、ある言語でソーシャル ボタンをクリックしても、他の言語では同様のものが表示されません。 . 同じ記事だけど言葉が違うと、両方の「いいね」の合計になると思います。

私にとっての解決策は、マスター URL を取得することです...: 現在の URL の widthout 言語拡張子 (/en および /es) を取得してマスター URL を取得するにはどうすればよいですか?

4

1 に答える 1

1

curPageURL()関数を次のように置き換えてみてください。

function curPageURL() {

    $url = JURI::current();

    $lang = JFactory::getLanguage();

    $tag = $lang->getTag();

    list($code) = explode("-", $tag);

    $url = str_replace("/" . $code . "/", "/", $url);

    return $url;

}
于 2013-09-24T14:05:37.253 に答える