[Tep-j-general] title&metaタグ生成スクリプト title_meta.php

Back to archive index

hamada bungu****@leo*****
2004年 12月 24日 (金) 17:19:19 JST


こんにちわ。

On Wed, 22 Dec 2004 09:54:58 +0900
"mix" <mix****@ceres*****> wrote:

> 今は、やはりSEO対策でフォーラムにあがっている「TITLE META TAGの挿入」
> https://sourceforge.jp/forum/forum.php?thread_id=5614&forum_id=459

やっぱこっちの方が便利ですかねぇ。1つで済むし(^_^;)

コレ上手にheader_tags.phpとmeta.phpをニコイチにしてるんですが、(元を作っ
た当方が)条件判定等をまったく行ってない決め打ち処理で作ってる→メーカー
名等が存在しない場合はtitleとか壊れることがあるので、「判定付きのニコイ
チ版」を作ってみました。

このスクリプトは、product_info.phpに

メーカー名や商品名の入った<title>
<meta name="keyword"
<meta name="description"

の出力を追加します。また、メーカー名や商品名がない場合は適宜出力を切り換
えます。

使い方>

下掲<?php から ?>までをエディタに貼り付けて文字コードEUC、改行コードLFで
保存し、/catalog/includes/title_meta.phpとしてアップロードしてください。

その後product_info.phpの

<title><?php echo TITLE; ?></title>

 ↓

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

と書き換えます。

注意>

このスクリプトはheader_tags.phpとmeta.phpの機能を合わせ持っていますので
この両者と同時に使用することができません。同時に使用すると出力されるタグ
が重複します。

はまだ



title_meta.php
----------------------------------

<?php

//metaタグを出力する関数
function meta_generate($products_name, $manufacturers_name, $products_description) {

//キーワードタグを作成
//先ずショップ名をキーワードに入れる
echo "<meta name=\"keyword\" content=\"" . TITLE ;

//メーカー名が有れば出力
if ($manufacturers_name != "") {

echo "," . $manufacturers_name;

}

//取得した商品名を半角スペース毎に分解して配列に収納
//字数を稼ぐため、全角英数字は半角に変換
$pieces = explode(" ", mb_convert_kana($products_name , "a"));

//分解した商品名部品をカンマ区切りで出力

$i = 0;

do {
	echo "," . $pieces[$i];
	$i++;

} while($pieces[$i] != "" && $i <= 10);	//部品が無くなるか10単語までループ

echo "\">\n";

//説明タグを作成
echo "<meta name=\"description\" content=\"";

//「説明は100字以内くらい」との事なので、とりあえず150バイトにしてます
//説明内にタグや改行が含まれてると都合悪いので、除去

$description = mb_strcut(ereg_replace("\n|\r|\r\n"," ",strip_tags(mb_convert_kana($products_description , "a"))),0,150);

echo $description;

echo "\">\n";

}
//関数定義終了

//クエリを準備
$the_product_info_query = tep_db_query("select pd.language_id, p.products_id, pd.products_name, pd.products_description, p.products_model, p.manufacturers_id, m.manufacturers_name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m where p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'" . " and p.manufacturers_id = m.manufacturers_id and pd.language_id ='" .  (int)$languages_id . "'");

//クエリを投げる
$the_product_info = tep_db_fetch_array($the_product_info_query);

//商品名を取得
$products_name = $the_product_info['products_name'];

//メーカー名を取得
$manufacturers_name = $the_product_info['manufacturers_name'];

//商品説明を取得
$products_description = $the_product_info['products_description'];


//商品名とメーカー名がある場合
if ($products_name != "" && $manufacturers_name != "") {

//titleタグを出力
echo '<title>' . TITLE . ' - ' . $manufacturers_name . ' ' . $products_name . '</title>' . "\n";

//metaタグを生成
meta_generate($products_name, $manufacturers_name, $products_description);

} elseif ($products_name != "") {

//メーカー名がない場合、商品名を含んだtitleタグを出力
echo '<title>' . TITLE . ' ' . $products_name . '</title>' . "\n";

//metaタグを生成
meta_generate($products_name, $manufacturers_name, $products_description);

} else{

//商品名とメーカー名がない場合、ショップ名のtitleのみを出力
echo '<title>' . TITLE . '</title>' . "\n";

}

?>






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