EC-CUBE

EC-Orange とは

EC-CUBE Q & A

キーワードで検索

カテゴリから探す

質問と回答

SITEMAPに表示させたくないページレイアウトについて

こんにちは。宜しくお願いします。

SITEMAP.PHPで出力させるXMLに出力して欲しくないページがある場合は、どのようにすれば出力されなくなるでしょうか?


EC -CUBEでデフォルトのテンプレートはLISTページのテンプレートになっているのですが、うちのサイトではLISTページは3カラムで、通常のユーティリティページなどで3カラムでは使い勝手が悪く、ページレイアウトで2カラムのフレームページを作り、2カラムにしたいページ(会員登録のページなど)のテンプレートを、その新規作成したフレームページに変更することで対応しました。

ところが、この、フレームだけのページがサイトマップにインデックスされてしまいます。こちらは後から作成したテンプレートなので、サイトマップではパスが通らず、GOOGLEでエラーがでてしまうのです。

このページをSITEMAPに掲載されないようにしたいのですが、どのようにすれば良いでしょうか?

VER.2.3.3
MYSQL

A. 回答

SITEMAPに表示させたくないページレイアウトについて への1件のコメント

  1. admin より:
    ちょっと内容を把握できていませんが、 新規ページ作成したページ(フレームページ?)があって、そのページをサイトマップに出力されないようにしたい、ということでしょうか。 /data/class/pages/LC_Page_Sitemap.phpの /** * すべての編集可能ページの情報を取得する. * * @param array $pageData すべてのページ情報の配列 * @return array 編集可能ページ */ function getEditablePage($pageData) { $arrRet = array(); $i = 0; foreach($pageData as $page) { if ($page[\'page_id\'] > 4) { $arrRet[$i] = $page; $i++; } } return $arrRet; } 上記のif文のところで、そのページだけを除外するように条件を入れればよいかと思います。例えばページ番号10の場合は、 /** * すべての編集可能ページの情報を取得する. * * @param array $pageData すべてのページ情報の配列 * @return array 編集可能ページ */ function getEditablePage($pageData) { $arrRet = array(); $i = 0; foreach($pageData as $page) { if ($page[\'page_id\'] > 4 && $page[\'page_id\'] != 10) { $arrRet[$i] = $page; $i++; } } return $arrRet; } (※実際に試したわけではありませんので、予めご留意ください) 上記でうまくいきましたら、できれば「/data/class_extends/page_extends/LC_Page_Sitemap_Ex.php」側に記述する方が良いかと思います。