ホーム

OFF-SOFT.net

OFF-SOFT.net

ウェブやソフトウェアに関するサポート&情報サイトです。サイト構築からソフトウェアの作成、利用まであなたの助けになるかも・・・・しれません。たぶん・・。

JoomSEO で自動的にMETAタグを作成する

公開日| 2009年06月30日 | コメントはまだありません。
概要 :
 Joomla! では、記事の編集画面に、METAタグ(キーワード、概要)を設定するための記入欄があります。 本来、METAタグ(キーワード、概要)を設定しておけば、GoogleやYahooなどの検索サイトで、より良い検索結果を得られます。 うまく設定していれば、検索結果の上位でヒットすることもあります。
 このMETAタグの設定は、SEO対策としてと一般的に用いられている対策の一つでもあります。

 ただ、筆者のように、記事を書くので精一杯な怠け者にとっては、META情報をなかなか設定しません。
(筆者のような方には、今回ご紹介するJoomSEO エクステンションは、手助けになるかもしれません。)

 今回、そのMETAタグを自動的に設定してくれるエクステンション JoomSEOについて簡単に紹介したいと思います。

早速、使ってみましょう
先のダウンロードサイトから、ZIPファイルをダウンロードし、インストールを行います。 (メニューの [エクステンション] - [インストール/アンインストール] から行ってください。)

インストールの後、プラグイン管理から"System - JoomSEO"を編集しましょう。
(メニューの [エクステンション] - [プラグイン管理] から"System - JoomSEO"を探してください。)

System - JoomSEO 固有のパラメータについて記述します。

パラメータ名 説明
Title Options
Maximum Title Length タイトルの最大文字数を指定します。(デフォルト127文字)
Prepend Title タイトルの前に常に加えたい文字列を指定します。(デフォルトなし)
Title Order タイトルの文字列の順番を指定します。(デフォルトなし)
  • Heading-Paragraph | Site Name | Keywords
  • Heading-Paragraph | Keywords | Site Name
  • Site Name | Heading-Paragraph | Keywords
  • Site Name | Keywords | Heading-Paragraph
  • Keywords | Site Name | Heading-Paragraph
  • Keywords | Heading-Paragraph | Site Name
Heading-Paragraph:記事のTitle-記事の導入概要
Site Name:サイト名(基本設定で指定しているサイト名)
Keywords:キーワード
(デフォルト Heading-Paragraph | Site Name | Keywords)
Append Title タイトルの後に常に加えたい文字列を指定します。(デフォルトなし)
Title Site Name 有効 ●はい いいえ
Title Content Heading 有効 ●はい いいえ
Title First Paragraph 有効 はい ●いいえ
Minimum Paragraph Length 導入概要の文字列の最小文字列数(デフォルト20文字)
Maximum Paragraph Length 導入概要の文字列の最大文字列数(デフォルト50文字)
Title Keywords 有効 はい ●いいえ
Minimum Keyword Characters キーワードの最小文字列数(デフォルト3文字)
# Title Keywords タイトルへ挿入する場合のキーワードの個数(デフォルト5個)
Meta Tags
Keywords Count METAタグへ出力するキーワードの個数(デフォルト25個)
Minimum Description Length METAタグへ出力する概要の最小文字列数(デフォルト80個)
Maximum Description Length METAタグへ出力する概要の最大文字列数(デフォルト150個)
Generator METAタグを作成するかどうかを指定します。
●はい いいえ
Keyword Filter
Sticky Words メモ文字列を指定します。
ここで指定した文字列は、全ての記事で、1回出現した時と同じ動作をします。
つまり、記事に何もキーワードがなければ、ここで指定した文字列がキーワードとして使用されます。
Bad Words キーワードから削除する文字列を指定します。
ここで指定した文字列を含んでいる単語を、全ての記事で、キーワードから削除します。
Bad Characters キーワードから削除する文字列を指定します。
ここで指定した文字列は、全ての記事で、キーワードから削除されます。
Front Page
Enabled? フロントページで有効にするか否かを指定します。
●はい いいえ
Frontpage Specific Activation
Disable Frontpage Title フロントページのタイトルを無効にするか否かを指定します。
はい ●いいえ
Disable Frontpage Keywords フロントページのキーワードを無効にするか否かを指定します。
はい ●いいえ
Disable Frontpage Description フロントページの概要を無効にするか否かを指定します。
はい ●いいえ
Frontpage Overrides
タイトル 上書きするフロントページのタイトルを指定します。 (デフォルトなし)
Meta Keywords 上書きするフロントページのMETAタグ(キーワード)を指定します。 (デフォルトなし)
Meta Description 上書きするフロントページのMETAタグ(概要)を指定します。 (デフォルトなし)
SEO / Accessability
Heading Tags SEO対策に<H1> - <H6>のタグで情報を括るかを指定します。
(デフォルトなし)
※実際には、何も動作しないようです??

デフォルトのままで、有効にするだけでも、META情報の概要は、ほどほどに設定されます。
ほどほどというのも、単純に先頭からの文字数分を取り出しているにすぎませんので、ほどほどという表現を使っています。

また、キーワードは、英単語は、きれいに拾ってくれます。その英単語の中で、出現数が多い単語をキーワードとして設定します。

単純、明快で、筆者の期待どおりの動作です。ただ、やはり日本語の問題は残ります。
日本語の記事は、日本語のキーワードを拾ってほしいのですが、日本語の単語は、まず、拾ってくれません。

日本語への対応はできてませんから、やるとすれば、 JoomSEO.phpの410行目あたりに、以下のような置換処理を加えれば、とりあえず、日本語の単語も少しは取り出しができます。
ただ、以下の処理は、サンプルであり、正しく単語を取り出せませんのでご了承ください。
キーワードの選定は、そのページに表示される各単語の出現回数の上位から順に決定されます。

[plugins/system/JoomSEO.php]
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
		$wordCount = array();
		// add our stickywords
		$stickyWords = explode(' ',$stickyWords);
		foreach ($stickyWords as $stickyWord) {
			$wordCount[$stickyWord]=1;
	    }
 
		//	start add for japanease words
		$text = preg_replace('/やります/', ' ', $text);
		$text = preg_replace('/します/', ' ', $text);
		$text = preg_replace('/できます/', ' ', $text);
		$text = preg_replace('/やりません/', ' ', $text);
		$text = preg_replace('/できません/', ' ', $text);
		$text = preg_replace('/しません/', ' ', $text);
		$text = preg_replace('/しかし、/', ' ', $text);
		$text = preg_replace('/でも、/', ' ', $text);
		$text = preg_replace('/また、/', ' ', $text);
		$text = preg_replace('/は、/', ' ', $text);
		$text = preg_replace('/が、/', ' ', $text);
		$text = preg_replace('/に、/', ' ', $text);
		$text = preg_replace('/を、/', ' ', $text);
		$text = preg_replace('/、/', ' ', $text);
		$text = preg_replace('/,/', ' ', $text);
		$text = preg_replace('/ /', ' ', $text);
		$text = preg_replace('/。/', ' ', $text);
		$text = preg_replace('/:/', ' ', $text);
		$text = preg_replace('/「/', ' ', $text);
		$text = preg_replace('/」/', ' ', $text);
		//	end add for japanease words
 
	    // loop through all our words and count instances
	    $words = explode(' ',$text);
		foreach ($words as $word) {

これで、以下の記事を実行したMETAタグの結果を以降に記載します。
Qt(9)QtScriptで画面を作成する

1
2
3
  <meta name="keywords" content="以下のよう, Mainwindow, 入力して, ここ, Cpp, Qscriptvalue, java, 追?, 作成する, ctrl+g, 続けて, 画面の下部, 出力されたと思います, Qtscript, タイプ, スクリプト, Void, Mainwindowexcutescript, けです, qtアプリケーションの画面, 作成してみましょう, Printfunc, 画面の上部, つまり, ?合" />
  <meta name="description" content="Qt(9)QtScriptで画面を作成する 記事索引 Qt(9)QtScriptで画面を作成する --- 1." />
  <title>Qt(9)QtScriptで画面を作成する | off-soft.net</title>

追記:2009.7.3
上記の処理位置では、日本語の場合、既にUTF-8の文字列に異常が検出されることがあります。
そのため、文字化けなどが発生します。また、上記の記述には、UTF-8での正規表現である小文字のuが全てに抜けています。
例えば、以下のように記述すべきです。
	$text = preg_replace('/やります/u', ' ', $text);

上記のような処理を行うには、以下のcurrent処理の後であれば、取り出したばかりなので、UTF-8の文字列は、正常です。
149
150
151
152
153
154
    function doGenerator() {
    	// get our site name
    	$this->seoDoc['siteName'] = $this->getSiteName();
 
    	// get our buffer text
    	$this->buffer = current($this->document->_buffer['component']);
いろんなやり方があると思います。上記は、あくまで、例ですので、ご了解ください。

上記のような単純な記述でも、意外と、取り出せるものですね。 本格的に、考えれば、もう少し良い結果も得られると思います。

概要だけでも自動で設定してくれれば、筆者にとっては、重宝します。
皆さんも、色々と試されると良いと思います。

もし、より良い手法等々お気づきの点がありましたら、コメントいただけますと幸いです。

もっと、Joomla!やPHP、Apacheについて詳しく知りたい方は、以下の本なども良いと思います。
本から学ぶことは多いと思います。ネットだけでは判らない様々な事に気づかされます。


Joomla!Pro Book オープンソースCMS導入&カスタマイズガイド

初めてのPHP & MySQL 第2版

Apacheハンドブック

コメント

コメントをどうぞ







  • はてなブックマークへ追加する
  • Facebookでシェアする
  • twitter でつぶやく
  • Google Plusでシェアする
  • Pocketでシェアする
ページトップへ