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 14

WordPressではてな記法を使えるプラグイン「WP HatenaNotation」導入とカスタマイズ方法

はてな記法とは

はてな記法というのは、はてなダイアリーで使える特殊な記事の装飾方法です。
知ってる人は読み飛ばしてもらって全然OKですが、知らない、使ったことがないという人には、ぜひ知ってほしいです。

はてな記法を使わない場合

たとえば記事内にリストを書きたい場合、普通のブログサービスやWordPressでは、いちいち手でliタグで囲むか、ないしはテキストエリア上部のツールボタンを使う必要があります。

私の場合、記事はテキストエディタで下書きしてるので、手動でタグを書いているわけですが、これが非常に面倒なんです。zen-codingとかも考えましたが、あまり肌に合わなかったので、結局手動で行っていました。

これだと、リストの中にリストが入れ子になるととても面倒です。

<ul>
 <li>関東
  <ul>
   <li>東京</li>
   <li>埼玉</li>
   <li>千葉</li>
  </ul>
 </li>
 <li>関西
  <ul>
   <li>大阪</li>
   <li>兵庫</li>
   <li>京都</li>
  </ul>
 </li>
 ...

このようにものすごく手間がかかり、しかも可読性が悪いです。

はてな記法を使うと

ところが今年になってはてなダイアリーを使いはじめたのですが、そこで使える「はてな記法」だと、これをものすごくシンプルに書き表せます。

はてな記法では、リストは「-」を先頭につけることで表し、さらに入れ子になる場合は「–」のように記号を重ねるだけでOKです。先ほどの例を、はてな記法で書くと以下のようになります。

-関東
--東京
--埼玉
--千葉
-関西
--大阪
--兵庫
--京都

このように、とてもスマートで読みやすい書き方ができます。

このほかにもpreタグを使いやすくしてくれたり、テーブルを簡単に作成できたりと、便利な書き方が多く用意されています。

・はてな記法一覧 – はてなダイアリーヘルプ

このはてな記法を、はてなダイアリーだけでなくWordPressで使えるようにしてくれるプラグインが「WP HatenaNotation」です。

プラグインの導入方法

  1. プラグイン配布ページである「WordPressにはてな記法を導入するプラグインを作った – Rewish」に行きます。
  2. 「ダウンロード」の項目から、プラグインをダウンロードします。
  3. ダウンロードした「wp-hatena-notation.zip」を解凍します。
  4. 解凍したフォルダ内にある「wp-hatena-notation」をWordPressの「plugin」フォルダにFTPでアップロードします。
  5. WordPressにログインし、ダッシュボードを表示します。
  6. 「プラグイン」の項目から、「wp-hatena-notation」を有効化します。

WP HatenaNotationのカスタマイズ

初期設定のままでも問題なく機能しますが、自分のサイトに合わせて、より詳細にカスタマイズすることができます。

ダッシュボードの「設定」→「はてな記法の設定」に進むと、設定が行えます。
以下、それぞれの設定項目について解説します。

無効日指定

ここに日付を設定すると、その日付以前でははてな記法が無効になります。以前の記事において、「*」「-」「+」などの記法に変換されそうな文字を文頭で使っている場合などは、はてな記法を導入した日の日付を設定しておきます。

なお、無効日の設定が必要なければ、「全ての記事で有効」にチェックを入れておけばOKです。

見出し記法の基準値

「*」による見出しの初期階層を指定します。たとえば「h3」にしておくと、「*AAA」は「<h3>AAA</h3>」、「**BBB」は「<h4>BBB</h4>」…となります。

通常は、記事タイトルの次の階層を指定しておくと良いと思います。たとえば記事タイトルをh1にしているなら基準値はh2、タイトルがh2なら基準値はh3という感じです。

包含要素を使用する

この項目有効にすると、はてな記法を使っている記事の場合は、全体がdivタグで囲まれます。

包含要素のclass

「包含要素を使用する」を有効にした場合に設定されるdivタグのclass名を設定します。

脚注部分のclass

はてな記法では、記事本文に脚注を入れられる脚注記法を使った場合、記事の最後に脚注一覧が作成されます。その脚注一覧を囲むdivタグのclass名です。

スーパーpre記法のマークアップ

SyntaxHighlighterなどのコードを見やすくする技術を併用している場合の項目です。(初期設定はSyntaxHighlighter用のものになっていますが、テキストエリア内を編集することで、他のシンタックスハイライトにも対応できます)

なお、WordPressでSyntaxHightliterを利用する方法については「SyntaxHighlighter(Ver3.x)の導入方法」の記事も参考にしてください。

タイトルのキャッシュを保持する日数

はてな記法で使えるhttp記法に関するものです。
http記法では、URL似続けて「:title」と入れることで、リンク先のページタイトルをURL代わりに表示できます。これはサーバーにタイトルをキャッシュすることで実現していますが、そのキャッシュ保持の期間を指定できます。

target属性を追加する

記事のリンクに「target=”_blank”」(リンクを別ウィンドウで開く)を自動追加するかどうかを設定します。

WordPressの改行を使用する

改行に関する設定です。
「使用する」にチェックを入れておくと、改行は通常のWordPressの挙動によってbrに変換され、二回以上連続する改行の場合のみpタグに変換されます。

一方「使用しない」にチェックを入れると、一回のみの改行であってもすべてpタグに変換されるようになります。

zenbackで関連記事が表示されない場合の対処法

先日、zenbackの導入方法の記事を書きましたが、一般のブログサービスではなくWordPressなどのツールを使っている場合、そのままでは上手く動作しない場合があるようです。

実際、このサイトでもしばらくzenbackが動かず困った末に解決しましたので、情報をシェアしておきます。

head要素内にRSSリンクが必要

zenbackのコードを貼って数日もすれば、ほほ確実に「関連リンク(他サイト・ブログの記事へのリンク)」のコーナーは表示されると思います。

しかし、自サイト内の記事を拾ってくれる「関連記事」が動かないことがあります。このような場合の対策が、zenbackブログに書かれていました。

関連記事の表示に問題がある場合の対処方法 – zenbackブログ

幾つかチェックポイントがあるのですが、たぶん一番多くの方がつまずくと思うのが、次のポイントです。

zenbackに登録したブログの<head>要素内にRSSへのリンクがあるか確認

WordPressでとくに自分でテンプレートを作っていたりする場合、head要素内にRSSリンクを含めていない場合が結構あると思います。これだといつまでたってもzenbackが関連記事を拾ってくれません。

なのでRSSリンクを入れます。
なお、WordPress(3.x)ではRSSリンクは下記のようになります。

<link rel="alternate" type="application/rss+xml" title="ServerResearch RSS Feed" href="http://serverkurabe.com/?feed=rss2" />
<link rel="alternate" type="application/atom+xml" title="ServerResearch Atom Feed" href="http://serverkurabe.com/?feed=atom" />

titleとURL部分は、それぞれ自分のブログに読みかえて利用してください。
なお上記では「feed=rss2」と「feed=atom」で、RSS2.0とAtomの両方を指定しています。RSS2.0だけでもいいかもしれませんが、念のためにAtomも指定したほうが安全だと思います。

なお、上記をhead要素に埋め込んでから関連記事が表示されるまでには、さらに時間がかかります。当サイトの記事は100記事以上ありますが、関連記事が表示されるまでには一週間はかかりました。

以上、zenbackが上手く動かずに困っている方のお役に立てば幸いです。

WordPress3.2リリース。ただし更新の際にはサーバー要件にご注意を

すでに各所で話題にされていますが、WordPressの最新版である3.2がリリースされました。現在WordPressをお使いの場合は、ダッシュボードからの自動更新もできるようになっています。

ただしいつもの更新と違って、今回のリリースでは必要とするシステム要件に変更があるなど、幾つかの注意が必要になっています。

WordPress3.2を動かすのに必要なサーバーの条件

3.2を動かすための要件は以下のように発表されています。

バージョン 3.2 系
PHP バージョン 5.2.4 以上 ・ MySQL バージョン 5.0 以上

サーバの用意 – WORDPRESS日本語版

まずMySQLに関しては、最近レンタルサーバーを契約したという方であれば、おそらくMySQL5が採用されていると考えて間違いないと思います。

ただし、ずっと以前に契約してそのまま利用を続けている場合、ホスティング事業者側で既存ユーザのMySQLをアップデートしていない場合が往々にしてあります。
そのため、WordPressを更新する前に確認することをおすすめします。

PHPに関してもMySQLに近いことがいえますが、おそらくどのレンタルサーバーでもPHP5が使えないというところはないと思います。

ただし、今回はPHP5.2.4以上というところに注意が必要です。
PHP5を採用しているサーバーであっても、ひとつ手前のメジャーバージョンである5.1.6が採用されていることも多いからです。

実際、このサイトを動かしているエックスサーバーも、初期設定ではPHP5.1.6が使われています。(ただしエックスサーバーの場合、管理画面からボタンひとつで、5.2や5.3に切り替えが可能です)

PHPのバージョンの確認に関しては、PHPの基本が分かる方であればphpinfo()を使っていただくか、もしくはレンタルサーバー会社の公式サイトやサポートに確認するのが一番確実だと思います。

本当は当サイトの条件別検索でも5.xの細かなバージョンまで指定して検索できるようにしたいと思っているのですが、ちょっと手が回ってないです。申し訳ないです。