[Tep-j-general] 検索エンジン対策再び

Back to archive index

hamada bungu****@leo*****
2003年 5月 15日 (木) 16:52:49 JST


こんにちわ。

昨年末にlist.php
http://lists.sourceforge.jp/pipermail/tep-j-general/2002-December/000314.html

という非常にしょーもないスクリプトを試作しまして以後ずっと実用に供して来
たんですが、これ、および

・All Products Page
http://lists.sourceforge.jp/pipermail/tep-j-general/2002-December/000344.html
(言語ファイルが分離した1.9a以降はウチでは動かなくなりました)

・Header Tags Controller
http://lists.sourceforge.jp/pipermail/tep-j-general/2002-December/000315.html
http://lists.sourceforge.jp/pipermail/tep-j-general/2002-December/000319.html

の威力は絶大で、Google他のクローラーがosCommerceの中をうろつくように→検
索エンジン経由のお客さま&売り上げが爆発的に増えました。

が、拙作list.phpもAll Products Pageも

catalog/product_info.php/cPath/products_id/1649

という簡易形式で各商品紹介ページへのリンクを生成してまして、

catalog/product_info.php/cPath/223_202_222/products_id/1649

というカテゴリを含んだ形式では生成しない→検索エンジンから直接飛んで来ら
れたお客さまが関連商品を探しにくい欠点があります。

これをなんとか出来ないかなぁとずっと考えていたんですが、スクリプトに

> require('includes/application_top.php');

と書いておけばgeneral.phpに書かれた関数が使える→

> $p_path=tep_get_product_path($myrow[2]);

等と、tep_get_product_pathにproducts_idを与えることによって

223_202_222

が得られるようになりましたので、アップデート版を作ってみました。

・/catalog(default.phpと同じトコ)に設置
・スクリプトの文字コードがeuc
・「サーチエンジン対策のURLを使用(開発中)」がTrue
・imagesにspacer.gifという1x1の透明gif画像がある
・日本語のみ

を決め打ちしています以外にも色々と問題の多いスクリプトなのですが、取り敢
えず動いてはいるようですし検索エンジンのクローラーをカテゴリの下に呼び込
む事にはそれなりのメリットがあると思いますので、恥を忍んで。

生成される表は

「メーカー(リンク)」「品名(リンク)」「品番」「カテゴリー(リンク)」

という形式で、(特価を読む方法が解らなかったので)価格は非表示です。

普通なら

> <link rel="stylesheet" type="text/css" href="stylesheet.css">

> <?php require(DIR_WS_INCLUDES . 'header.php'); ?>

> <?php require(DIR_WS_INCLUDES . 'footer.php'); ?>

等も該当部分に記述しosCommerce本体と見た目や操作性を揃えておくべきだと思
うのですが、実験環境では(特にヘッダで)少々特殊なことをやっておりまして、
上手く繋がらなかったので敢えて書いていません。

はまだ




list.php(可能ならlist.htmlにすることを推奨)
----------------

<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="LTR" lang="ja">
<head>
<?php
require('includes/application_top.php');
require ('includes/configure.php');
?>

<meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> 
<META NAME="ROBOTS" CONTENT="NOARCHIVE">
<title><?php echo TITLE; ?> 全商品一覧</title>
</head>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

<br>

<!--
manufacturers			m
products			p
products_description		d
categories_description		c
categories			k

myrow[0]	m.manufacturers_id
myrow[1]	m.manufacturers_name
myrow[2]	p.products_id
myrow[3]	d.products_name
myrow[4]	p.products_model
myrow[5]	c.categories_name
myrow[6]	p.products_status
myrow[7]	k.status
//-->

<br>

<A name="top">
<?
$today = getdate(); 
$month = $today['month']; 
$mday = $today['mday']; 
$year = $today['year']; 
echo "$month $mday, $year";
?>
</a>

<br>

<?php

$db = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD);

mysql_select_db(DB_DATABASE,$db);

$result = mysql_query("SELECT m.manufacturers_id, m.manufacturers_name, p.products_id,  d.products_name, p.products_model, c.categories_name, p.products_status, k.status FROM manufacturers m, products p, products_description d, products_to_categories t, categories_description c, categories k WHERE p.products_id=d.products_id and p.manufacturers_id=m.manufacturers_id and p.products_id=t.products_id and t.categories_id=c.categories_id and t.categories_id=k.categories_id ORDER BY m.manufacturers_name , c.categories_name , p.products_model",$db);

echo "<table bgcolor=\"#fafaff\" border=\"1\" cellspacing=\"0\" cellpadding=\"2\" bordercolor=\"#bbbbbb\" width=\"100%\">\n";

echo "<tr><img height=\"1\" width=\"680\" src=\"images/spacer.gif\"></tr>";

echo "<tr bgcolor=\"#eeeeee\"><td> メーカー</td><td>品名</td><td>品番</td><td>カテゴリー</td></tr>\n";

while ($myrow = mysql_fetch_row($result)) {

$p_path=tep_get_product_path($myrow[2]);

if ($myrow[7] == 0)

 printf("<tr><td><A href=\"default.php?manufacturers_id=%s\">%s</a></td><td>%s</td><td>%s</td><td>%s</td></tr>\n", $myrow[0], $myrow[1], $myrow[3], $myrow[4], $myrow[5]);

elseif ($myrow[6] == 0)

 printf("<tr><td><A href=\"default.php?manufacturers_id=%s\">%s</a></td><td>%s</td><td>%s</td><td><a href=\"default.php/cPath/%s\">%s</a></td></tr>\n", $myrow[0], $myrow[1], $myrow[3], $myrow[4], $p_path, $myrow[5]);

else

 printf("<tr><td><A href=\"default.php?manufacturers_id=%s\">%s</a></td><td><a href=\"product_info.php/cPath/%s/products_id/%s\">%s</a></td><td>%s</td><td><a href=\"default.php/cPath/%s\">%s</a></td></tr>\n", $myrow[0], $myrow[1], $p_path, $myrow[2], $myrow[3], $myrow[4], $p_path, $myrow[5]);

}

echo "</table>\n";

?>

<br>商品の入荷状況等により、予告なく販売を停止したり価格を改定する場合が有ります。
<br>

<br><A href="#top">ページの先頭に戻る</A><br><br>

</body>

</html>







Tep-j-general メーリングリストの案内
Back to archive index