EC-CUBEはデフォルトで、
「店名/ページのタイトル」というタイトルが吐き出されるようになっています。
これではSEO的に???なので、変えたい。
一番基本的なやり方は公式フォーラムに書かれています。
が、なんか個人的に自由度が低くてイヤだ。
テンプレートだけでどうにかしたい(>_<)
ってことで、人によってはそんな実装ダメだと怒られるかもしれない、
力技のタイトル変更方法です。
site_frame.tplを編集します。
<title><!--{$arrSiteInfo.shop_name|escape}-->/<!--{$tpl_title|escape}--></title>
↑ここがタイトルを定義している記述です。
では、力技を実装しましょう。
まず、テンプレートファイルの頭にでも、
<!--{php}-->
$this->assign( 'selfFile', basename( $_SERVER['PHP_SELF' ] ) );
<!--{/php}-->
と書きます。これで、テンプレートファイル変数「selfFile」に今実行されているスクリプトのファイル名が代入されます。(この部分はPHPを実行しているので、「あまりよくない」と指摘される部分です。キレイにMVC分離をしたい人は、上記のロジックをSC_View.phpにでも書いておくと良いかと思います。)
で、上記のタイトル定義部分を
<!--{if $selfFile=='detail.php'}-->
商品詳細ページのタイトル
<!--{elseif $selfFile=='list.php'}-->
一覧ページのタイトル
<!--{else}-->
そのほかのページのタイトル <!--{/if}-->
このように変更すれば、テンプレートで、ページごとのタイトルの切替ができます。もちろん、テンプレート変数がそのまま利用できるので…
<!--{if $selfFile=='detail.php'}-->
<!--{$arrProduct.name|escape}--> <!--{$arrSiteInfo.shop_name|escape}-->
<!--{elseif $selfFile=='list.php'}-->
<!--{$tpl_subtitle}--> <!--{$arrSiteInfo.shop_name|escape}-->
<!--{else}-->
<!--{$arrSiteInfo.shop_name|escape}-->/<!--{$tpl_title|escape}-->
<!--{/if}-->
上記のように実装すれば、、
商品ページのタイトル => 「商品名 店名」
一覧ページのタイトル => 「カテゴリ名 店名」
そのほかのページ => 「店名/ページタイトル」(デフォルトの状態)
とタイトルを変えることができます。
コメントを残す