Labo

[EC-CUBE 2.11.4] 商品一覧ページのページタイトルに親カテゴリも含めたい

2011年12月24日 / 投稿者名:fukap


EC-CUBE 2.11 になりSEO管理がだいぶパワーアップしましたね。
ページ個別にAuthor,Description,Keywordsが設定できるようになりました。
と言っても、商品一覧ページでカテゴリページごとに内容を変えたい場合は、やはりカスタマイズが必要です。
今回は、ページタイトル(いわゆる<title>~</title>の中身)に親カテゴリを含める方法をご紹介します。

 

data/class/pages/products/LC_Page_Products_List.php 356行目付近

function lfGetPageTitle($mode, $category_id = 0){
    if ($mode == 'search') {
        return "検索結果";
    } elseif ($category_id == 0) {
        return "全商品";
    } else {
        //$arrCat = SC_Helper_DB_Ex::sfGetCat($category_id);
        $objDb = new SC_Helper_DB_Ex();
        $arrCat = $objDb->sfGetCatCombName($category_id);
        return $arrCat;
    }
}

これでとりあえずデフォルトのアイスの商品一覧ページであれば、

<title>テストサイト / 食品 | お菓子 | アイス </title>

という感じに、親カテゴリが含まれた形でページタイトルが設定されると思います。
縦棒が気に入らない方は、data/class/helper/SC_Helper_DB.php の sfGetCatCombName() をいじくってみてください。

 

ところで、このsfGetCatCombNameメソッド。
よく見てみると、全く使われていないメソッドっぽいです。
SC_Helper_DB クラス内は使われてないメソッドが結構ありそうですね。
そんなわけで、いずれ削除されるメソッドかもしれません。

[EC-CUBE 2.11.4] 商品一覧ページのページタイトルに親カテゴリも含めたい への5件のコメント

  1. サクラモチ より:

    こんにちは。

    「商品一覧画面にてタイトルに親カテゴリを含めて表示させたい」と思ってやり方を探していたところ、こちらのカスタマイズでtitleだけでなく商品一覧画面タイトルも変更することができました。ありがとうございます!

    一つ教えていただきたいのですが、もし親カテゴリーのうち頭のカテゴリーを表示させないようにするには、どうすればよいでしょうか。
    例えば、「食品 | お菓子 | アイス 」という表示の場合は、「食品」は表示させない、ということです。

    どうぞよろしくお願いいたします。

  2. fukap より:

    こんにちは。

    要は最上層のカテゴリのみ表示しないようにする、ということですよね。
    そのためには、出力内容を制御する必要があります。
    変数を定義するPHP側でやるか、変数を実際に出力するテンプレート側でやるか、
    どちらかになると思いますが、PHP側の方がやりやすいかな。

    ちょっとSC_Helper_DB_Ex::sfGetCatCombName メソッドではやりにくそうなので、
    もう少し書き換えたいところです。
    ちょっと今は時間が取れないので、週末に考えてみます。

    • サクラモチ より:

      ありがとうございます。結構ややこしそうですね…
      PHPについて私はほとんど初心者な状態なのですが、EC-CUBEを使うにあたりわからないではすまされなくなってきたことを実感しており、遅ればせながら勉強を初めています(^^;)
      PHPがわかるようになるまでは、fukapさまのような方々にお力を借りてなんとかやっていきたいと思っております。
      どうぞよろしくお願いします。

  3. ピンバック: [EC-CUBE 2.12.3] 商品一覧ページのページタイトルに親カテゴリも含めたい その2 | NAKWEB × EC-CUBE

  4. fukap より:

    以下のスレッドを参考にしてみてください。

    http://ec-cube.nakweb.com/blog/2029.html

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

* Copy This Password *

* Type Or Paste Password Here *

*

コメント欄にコードを挿入したい場合は、[php][/php] を使ってください。