サーチコンソールからの通知で、今更ながら初めて気が付きました。
EC-CUBE が標準提供している sitemap.php に相応しくない URL が含まれているなんて...。
今回は 2.13.4 と 2.13.5 のカスタマイズになります。
http://net-info-square.com/2015/08/22/post-60/
基本のやり方はググってみるとサクッと見つかりました。
ただしこちらは shopping だけだったので、ちょっと追記してみました。
/data/class/pages/LC_Page_Sitemap.php ファイルに getPageData という関数があるので丸ごとコピーし、
/data/class_extends/page_extends/LC_Page_Sitemap_Ex.php にペースト。
$sql .= ' WHERE ' . $where;
のところに SQL を追記すると良いという具合です。
上記では、
/shopping/ 購入処理
/entry/ 会員登録
/regist/ 会員登録関連
/mypage/ マイページ
/cart/ カート
*/complete.php なんらかの完了ページ
を除外するようにしています。
これでサーチコンソールに怒られないかな?
EC-CUBE が標準提供している sitemap.php に相応しくない URL が含まれているなんて...。
今回は 2.13.4 と 2.13.5 のカスタマイズになります。
http://net-info-square.com/2015/08/22/post-60/
基本のやり方はググってみるとサクッと見つかりました。
ただしこちらは shopping だけだったので、ちょっと追記してみました。
// /data/class_extends/page_extends/LC_Page_Sitemap_Ex.php
/**
* ブロック情報を取得する.
*
* @param string $where WHERE句
* @param array $arrVal WHERE句の値を格納した配列
* @return array $arrPageList ブロック情報
*/
public function getPageData($where = '', $arrVal = '')
{
$objQuery = SC_Query_Ex::getSingletonInstance(); // DB操作オブジェクト
$sql = ''; // データ取得SQL生成用
$arrPageList = array(); // データ取得用
// SQL生成(url と update_date 以外は不要?)
$sql .= ' SELECT';
$sql .= ' page_id'; // ページID
$sql .= ' ,page_name'; // 名称
$sql .= ' ,url'; // URL
$sql .= ' ,filename'; // ファイル名称
$sql .= ' ,header_chk '; // ヘッダー使用FLG
$sql .= ' ,footer_chk '; // フッター使用FLG
$sql .= ' ,author'; // authorタグ
$sql .= ' ,description'; // descriptionタグ
$sql .= ' ,keyword'; // keywordタグ
$sql .= ' ,update_url'; // 更新URL
$sql .= ' ,create_date'; // データ作成日
$sql .= ' ,update_date'; // データ更新日
$sql .= ' FROM ';
$sql .= ' dtb_pagelayout';
// where句の指定があれば追加
if ($where != '') {
// [カスタマイズ] http://net-info-square.com/2015/08/22/post-60/
// [原案] $sql .= ' WHERE ' . $where;
$sql .= ' WHERE NOT url LIKE \'%shopping%\' and NOT url LIKE \'%entry%\' and NOT url LIKE \'%regist%\' and NOT url LIKE \'%mypage%\' and NOT url LIKE \'%cart%\' and NOT url LIKE \'%complete\.php%\' and ' . $where;
}
$sql .= ' ORDER BY page_id';
$arrPageList = $objQuery->getAll($sql, $arrVal);
// URL にプロトコルの記載が無い場合、HTTP_URL を前置する。
foreach ($arrPageList as $key => $value) {
$arrPage =& $arrPageList[$key];
if (!preg_match('|^https?://|i', $arrPage['url'])) {
$arrPage['url'] = HTTP_URL . $arrPage['url'];
}
$arrPage['url'] = preg_replace('|/' . preg_quote(DIR_INDEX_FILE) . '$|', '/' . DIR_INDEX_PATH, $arrPage['url']);
}
unset($arrPage);
return $arrPageList;
}
/data/class/pages/LC_Page_Sitemap.php ファイルに getPageData という関数があるので丸ごとコピーし、
/data/class_extends/page_extends/LC_Page_Sitemap_Ex.php にペースト。
$sql .= ' WHERE ' . $where;
のところに SQL を追記すると良いという具合です。
上記では、
/shopping/ 購入処理
/entry/ 会員登録
/regist/ 会員登録関連
/mypage/ マイページ
/cart/ カート
*/complete.php なんらかの完了ページ
を除外するようにしています。
これでサーチコンソールに怒られないかな?