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"; } ?>