Warning: Declaration of FEE_Field_Terms::wrap($content, $taxonomy, $before, $sep, $after) should be compatible with FEE_Field_Post::wrap($content, $post_id = 0) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Tags::wrap($content, $before, $sep, $after) should be compatible with FEE_Field_Terms::wrap($content, $taxonomy, $before, $sep, $after) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Category::wrap($content, $sep, $parents) should be compatible with FEE_Field_Terms::wrap($content, $taxonomy, $before, $sep, $after) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Post_Thumbnail::wrap($html, $post_id, $post_thumbnail_id, $size) should be compatible with FEE_Field_Post::wrap($content, $post_id = 0) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Post_Meta::wrap($data, $post_id, $key, $ui, $single) should be compatible with FEE_Field_Post::wrap($content, $post_id = 0) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Widget::wrap($params) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/widget.php on line 0

Warning: Declaration of FEE_Field_Comment::wrap($content) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0

Warning: Declaration of FEE_Field_Term_Field::wrap($content, $term_id, $taxonomy) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0

Warning: Declaration of FEE_Field_Single_Title::wrap($title) should be compatible with FEE_Field_Term_Field::wrap($content, $term_id, $taxonomy) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0

Warning: Declaration of FEE_Field_Option::wrap($content, $key, $ui) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0
Sabakura Blog - Part 22

WordPressでjQueryを動かす方法

先日、別サイトですが、WordPress内でjQueryを動かす必要がありました。
その際に、jQueryがなかなか動かずに困りましたので、備忘録がてらにここで動かし方を書いておきたいと思います。

WordPressでjQueryを動かすには

wp_enqueue_scriptの記述を追加

WordPressでは、わざわざjQueryのライブラリを新しくサーバー上に設置しなくても、標準でWP内にjQueryのライブラリが用意されています。

ただし、初期設定ではjQueryは読み込みされませんので、<head>~</head>内に、ライブラリ読み込みのための関数を追加する必要があります。

このライブラリ読み込みのための関数が「wp_enqueue_script」です。
これを<?php wp_head(); ?>以前に追加します。

具体的には、WordPressの利用しているテーマフォルダ内のheader.phpに、以下のように記述してください。

<?php wp_enqueue_script('jquery'); ?>;
<?php wp_head(); ?>;

これでjQueryが読み込まれるようになります。
なお本当に読み込まれているかを確認するには、実際のページのソースで、以下の一行があるかどうかを確認してください。

<script type='text/javascript' src='http://[ドメイン]/[wordpressを設置したディレクトリ]/
wp-includes/js/jquery/jquery.js?ver=1.4.2'></script>

$をjQueryに置き換え

さらにもう一つの作業として、jQueryのコードを書き換える必要があります。
具体的には、コード内の「$」を「jQuery」という文字列に置き換えます。

これは、WordPressにはjQuery同様に「$」をコード内で利用するprototype.jsのライブラリがあるためです。そこでWordPressでは、ライブラリのコンフリクトを避けるため、jQueryの場合は「$」を「jQuery」に置き換えます。

たとえば以下のようなjQueryのコードがあったとします。
(id=”appeal”内の文字列を赤に設定する、というコードです。)

$("#appeal").css("color","red");

これをWordPress内で利用する場合は、以下のように書き換えます。

jQuery("#appeal").css("color","red");

これで正常に動くようになります。
ただ、コードが長くなる場合は、$をすべて置換するのはあまり綺麗ではないので、以下のようにするといいと思います。

jQuery(function($){
	$("#appeal").css("color","red");
	//以下、コードを追加
});

最初にjQuery(function($)を記述することで、{}内のコードはすべて$のまま記述できます。

なお、今回の記事は以下のサイトを参考にさせていただきました。

パンダ・アップデート対策を実行

海外SEOブログさんの記事を参考に、パンダ・アップデート(ファーマー・アップデート)の対策を実行してみました。

ちなみに元記事でも紹介されていますが、パンダ・アップデートとは米国のGoogleで先日行われた、「コンテンツ価値の薄いページの検索順位を低下させる」ことを目的としたアルゴリズム更新になります。

もっともパンダ対策をする以前に、このサイトは謎のGoogleペナルティを受けているので、あまり意味がないかもしれませんが。
たぶん、SEOもっとさんが受けたペナルティと似たような状態だと思うのですが、いまいち原因がわからないのですよね。。。

このペナルティについては後日落ち着いたら記事にしたいと思っていますが、どちらにせよこれからのGoogleの好むサイトにしておくのはSEO上価値があるはずです。

そんなわけで、行ったパンダ対策の一覧を紹介しておきます。

パンダ・アップデート対策で行ったこと一覧

noindex, follow metaタグの追加

もともとコンテンツファームが話題になった頃から、カテゴリやタグの一覧ページがインデックスされるのは少し気になっていました。
記事の一覧ページというのはコンテンツそのものを含んではいないので、Googleが好ましく思わないだろう、と感じていたからです。

それでも今までは放置気味だったのですが、この機会に修正に取り組むことにしました。

といっても、このサイトはWordPressで構築されていますので、そのままだと特定ページにのみmetaタグを追加ということはできません。
そのままheader.phpにmetaタグを追加すると、全ページに記述されてしまうからです。

でどうやるのかと思案していたら、導入済みの「All in One SEO」にちゃんと項目がありました。ちゃんと導入時によく見ないとダメですね。

All in One SEOでのnoindex, follow metaタグの追加方法

  • 1.ダッシュボードにログインし、「設定」→「All in One SEO」をクリックします。
  • 2.「Use noindex for Categories」、「Use noindex for Archives」、「Use noindex for Tag Archives」にチェックを入れます。
  • 3.「Update Options」をクリックして設定を保存します

以上で、カテゴリ、アーカイブ、タグのそれぞれのページにが追加され、「インデックスはされないが、クローラーの巡回は行われる」状態になります。

なお、このサイトではすでにタグページ以外はちゃんとチェックが入っていました。
なので、今回の作業ではタグページだけ修正を施したことになります。

不要な投稿タグの削除

また利用しているタグの数を確認してみたところ、50近くに上りました。これはちょっと多いかな、ということで不要なタグの見直しを考えました。

もともとSEOの薬箱さんの「「タグクラウド」と「カレンダー」を非表示にする理由」などの記事もあってタグクラウドの設置などはしていませんでした。
なので、いっそタグ自体使わなくてもいいのかな、と考えたりもしました。海外SEOブログさんも、いまはタグ使ってないみたいですし。

ただカテゴリだけにしてしまうと、たとえば「ロリポップ関連の情報がほしい」というときに、レビューとニュースなどがをバラバラに検索しないといけないので、ちょっと不便かな、と。

そこで「共用サーバー」「VPS」などのごく基本的なタグと、あとサービスブランドに関するタグだけは残すことにして、その他のタグを削除しました。
これでタグ数が50→30に減り、大分スリム化できました。

WordPressの管理ファイルへのアクセスを禁止

robots.txtで、WordPressの管理ファイルへのアクセスを禁止しました。
このサイトは /wordpress 以下に構築してありますので、次の記述を追加しました。

User-agent: *
Disallow: /wordpress/wp-admin/
Disallow: /wordpress/wp-includes/
Disallow: /wordpress/wp-content/

今後について

あとはサイトの高速化に少し手を出したいかな、というところです。

各サービスのデータ一覧とかは、MySQLに放り込んだデータベースから引っ張ってきているのですが、これがたぶんページの表示速度を結構落としているので、できる範囲で高速化の工夫を行っていきたいと思います。

ブログのPing通知を設定する

ブログには、Pingと呼ばれる機能が備わっています。

Pingとは

Pingは自分のブログの記事が追加・更新されたことを通知するための機能で、なるべく多くの人に自分の記事を知ってもらうための機能です。

Pingには大きく分けて「検索エンジン向け」と「人間向け」という二つの要素があります。

まず検索エンジン向けというのは、Yahoo!やGoogleといった検索エンジンに対してPingを通知することで、なるべく早く自分の記事が検索結果の一覧に表示される(インデックス登録される)ようにするための機能です。

人間向けというのは、様々なサイトで「○○のブログが更新されました」というお知らせ情報を表示してもらうことで、そこから人が訪れてくれるようにするための機能です。

Pingの通知設定

アメブロ、livedoor、FC2など、主な無料ブログを使っている場合には、すでに代表的なPing通知先の設定は済ませてあります。
それでも、少しでも多くアクセスアップを狙いたいという人は、下記のPing送り先一覧を参考にしてください。

一方、レンタルサーバーにWordPress/MovableTypeをインストールして自分でブログを作っている場合には、初期設定されているPing通知先は非常に少ないため、必ず手動で追加をしておいてください。

WordPressでのPing設定

1.WordPressのダッシュボードにログインします。

2.メニューの「設定」→「投稿設定」をクリックします。

3.「更新情報サービス」にpingの通知先URLの一覧を入力/貼り付けします。

4.「変更を保存」をクリックするとPingの設定が完了します。

MovableTypeでのPing設定

1.MovableTypeの管理画面にログインします。

2.「システム・メニュー」→「ブログ」をクリックします。

3.Pingを設定したいブログの「設定」をクリックします。

4.「新規投稿」から記事の作成画面に進み、「更新Ping/トラックバックの設定」にpingの通知先URLの一覧を入力/貼り付けしてます。

5.「変更を保存」をクリックするとPingの設定が完了します。

主なPingの送り先一覧

2011年現在、私が主に利用しているPingの通知先一覧です。

  • http://api.my.yahoo.co.jp/RPC2
  • http://blogsearch.google.com/ping/RPC2
  • http://blog.goo.ne.jp/XMLRPC
  • http://rpc.reader.livedoor.com/ping
  • http://ping.fc2.com
  • http://jugem.jp/?mode=NEWENTRY
  • http://ping.bloggers.jp/rpc/
  • http://www.blogpeople.net/servlet/weblogUpdates
  • http://ping.rss.drecom.jp/
  • http://rpc.technorati.com/rpc/ping
  • http://rpc.pingomatic.com/
  • http://rpc.weblogs.com/RPC2
  • http://ping.blogoon.net/
  • http://ping.namaan.net/rpc/
  • http://ping.ask.jp/xmlrpc.m
  • http://rpc.blogrolling.com/pinger/
  • http://blogstyle.jp/xmlrpc/
  • http://blog-search.net/up.php

Pingの設定に関する注意点

なお、Pingの通知先は無数にありますので、検索すると他にも様々なものが出てくると思います。ただし、あまりに多くのPingを打つのはスパム行為として認識される危険もあります。

そのため、私は常にPingは20個以内に納めるようにしています。
SEOに正解はありませんの、これでも少なすぎるor多すぎるといった意見もあると思いますが、個人的にはこの辺りが適切なのではないかと考えています。