テーマとテーマのカスタマイズ

利用者は次の機能を使って書き込みができる。書き込みは、データベース(mysql)で管理されている。

  •  投稿記事(post)
    主にタイトル、コンテンツ、公開日時、カテゴリー(設定のない場合は未分類、複数設定可)、タグ(複数設定可)のフィールドから構成される。
  • ページページ(page)
    主にタイトル、コンテンツ、公開日時のフィールドから構成される。postとは別のテーブルで管理されている。固定的なページ(サイトの概要、自己紹介、地図など)を作成する際に使われる。

テーマは、テンプレート(phpファイル)とスタイル(cssファイル)から構成されている。
テーマは、ワードプレスの基本的なルールを守りつつ、オリジナルのデザイン・機能を提供している。

1、 htmlファイルを作るテンプレート・・・2の部品テンプレート(header.php、sidebar.php、footer.php)を内包している。

  •  メインインデックス(index.php)
    最新のポスト(post、複数の投稿記事)を表示するテンプレート。
  • ページ(page.php)
    ページ(page)を表示するテンプレート。
  • カテゴリー(category.php)
    カテゴリーに該当するポスト(複数の投稿記事)を表示するテンプレート。
  •  アーカイブ (archive.php)
    年月日に該当するポスト(複数の投稿記事)を表示するテンプレート。
  • タグ (tag.php)
    タグに該当するポスト(複数の投稿記事)を表示するテンプレート。
  • 単一投稿記事(single.php)
    一つのポストを表示するテンプレート。
  • 検索(search.php)
    検索語に該当するポスト(複数の投稿記事)・ページ(page)を表示するテンプレート。
  • カスタムテンプレート
    上記のテンプレートでは表現できない独自の内容を表示するときに使うテンプレート。テーマで提供される場合もある。ページ(page)で選択(デフォルトテンプレートに代わって)して使用する。

2、 htmlファイルの部品となるテンプレート・・・1のhtmlファイルを構成している。

  •  ヘッダー (header.php)
    htmlファイルのタグの部分と、のうち、上部のタイトルバナーの部分を記述している。
  • サイドバー (sidebar.php)
    のうち、サイドのナビゲーションメニューの部分を記述している。
  • フッター (footer.php)
    のうち、下部のフッターの部分(コピーライトや会社名など)を記述している。
  •  コメント (comments.php)
    postおよびpageに対するコメントの書き込み・表示を記述している。
  • 404 テンプレート (404.php)
    htmlファイルが表示されないエラーのときに表示するテンプレート

3、 スタイル

  • スタイルシート (style.css)
    CSSのデザインを記述するファイル

4、 htmlファイルの構成

 

<head>

タイトル、キーワード、文字セットなど

(header.phpの上部で記述)

<body>

表示部分

ヘッダー (header.phpの下部で記述)

サイドバー(sidebar.phpで記述)

コンテンツ

index.phpsingle.php search.php page.php category.php archive.phptag.php」で記述されている「header.phpsidebar.phpfooter.php」以外の部分

フッダー (footer.phpで記述)

Wordpress mu によるブログポータルサービスの構築

Wordpressを使って複数ブログのコミュニティー(ブログポータルサービス)を作れないかと以前から考えていました。Movable Typeは複数ユーザーは有償ですので最初から考えませんでした。

Wordpressは、1アカウント1ユーザーですので、マルチユーザーのWordpress muに挑戦することにしました。

その前に、Wordpress muを使った、ブログポータルサービスを調べたところ、日本では下記の2社が構築サービスをしていました。

1、UTAGE ポータルサイト構築特化サービス http://www.utage-portal.com/
2、[win-SI]ポータルブログASPサービス http://win-si.jp/pb/

2社ともビジネスですので無料ということはなく断念しました。ただ、調べている過程で、http://blogs.mu/というサービスを見つけました。HPのトップに「Start Your Own Blogging Community」とあるように、まさに私の望んでいるサービスなのですが、これは英語版のみですので使えません。

そして、悪戦苦闘の1週間が始まりました。

マスターズのウィジェットを貼ってみました

携帯電話からのメールによる投稿

昨日、携帯電話からのメールで投稿することができる「Ktai Entry (メール投稿プラグイン)」をインストールしました。

http://wppluginsj.sourceforge.jp/ktai_entry/

「外部メールボックスに随時アクセスの場合」は比較的簡単に設定することできました。上記サイトにある説明の繰り返しになりますが

  1. Ktai Entryをダウンロードして、フォルダごと /wp/wp-content/plugins  ディレクトリに転送
  2. 投稿用の宛先メールアドレスを作成
  3. 設定>投稿設定の「メールでの投稿」で、2で作成したメールアドレスのメールサーバー、ログイン名(メールID)、パスワードを入力して変更を保存
  4. プラグイン>インストール済みで「Ktai Entry」を使用するに変更
  5. 設定に追加された「メール投稿」のKtai Entry オプションの投稿受付メールアドレスに、2で作成したメールアドレスを設定
  6. ユーザー>新規追加で、作成者以上の権限で新たなユーザーを作成、その時のメールアドレスは、投稿用の携帯電話のメールアドレスにする。
  7. 投稿メールに画像添付がある場合は、外観>編集で style.css を変更する。
  8. 携帯電話から2のアドレスにメールを送信、5のメール投稿でPOP3 読み込み間隔の項目にある「すぐにメッセージを読み出す。」をクリックする。
  9. サイトで投稿を確認する。

「メール着信時に投稿スクリプトを起動の場合」については、下記を参考に設定しました。私もさくらインターネットを利用していますので助かりました。

http://www.incho.com/blog/?p=252

上記サイトの説明に従って、「.mailfilter」と「inject.php」を書き換えるときに、プログラムを単純にコピー&ペーストすると、「”、’」が全角のままですので注意してください。というか、私はそれでうまくいきませんでした。

カテゴリーのRSS

ワードプレスのカテゴリーのRSSフィードの生成について調べました。他のサイトでRSSを表示させるためです。

http://wpdocs.sourceforge.jp/WordPress_Feeds

で、読むと

「リンクの末尾に以下のように付与することで、特定のカテゴリーのみのフィードを生成することができます。 http://example.com/wp-rss2.php?cat=42
あるいは(訳注:カスタムパーマリンクの場合)
http://example.com/category/categoryname/feed」

と記述されていました。ところが、このブログで、 http://www.proplink.jp/wp/category/design/feed にアクセスしても記事は何も表示されません。いろいろ試したのですがうまくいきません。それで、このブログの「デザイン」カテゴリをクリックしました。URLを見ると http://www.proplink.jp/wp/archives/category/design と表示されています。archives/が足りなかったということです。

正解は、http://www.proplink.jp/wp/archives/category/design/feed でした。なぜ、archives/ディレクトリが必要なのかはわかりませんがが解決しました。

Movable Type との違い

ワードプレスの参考本を本屋に買いに行きますと、Movable Type の本が倍から3倍ぐらいあります。Movable Type は商用だと有償ということで勉強の対象から外しましたが、違いについてはよく知りませんでした。

そこで、「Movable Typeで今日からはじめるカスタムブログ」という本を買ってインストール、ちょっと使ってみました。最初に気づくのは、PHP(ワードプレス)とCGIで使っている言語の違いです。そして、最も大きな違いが、Movable Type は、1アカウントで複数のブログが立ち上げられることです。ワードプレスは、アカウント数に制限はないのですが、1アカウント1ブログですので、同じサーバにインストールする場合も、ブログの数だけソフトウェアをインストールしてアカウントを取得する必要があります。

ウィキペディアを読んでいると、「複数ブログの管理 Movable Typeは複数ブログの管理に標準で対応している。WordPressに複数ブログの管理機能はないが、複数管理に対応した派生版のWordPress MUが開発されている。」とありました。

ブログを使ったコミュニケーションサイトを作る場合、個人に割り当てられた複数のブログとそれぞれのブログの情報を集約するポータルページで構築されますが、ワードプレスでもできるんだとちょっと安心しました。どうやってやるのかな、WordPress MU を勉強しようかなどうしようかな。

プラグイン Smart Archives Reloaded をインストール

カテゴリを選択して月別にタイトル一覧を表示するプラグイン「Smart Archives Reloaded」をインストールしました。これは、プラグイン「Smart Archives」を拡張したバージョンで取り扱いが簡単になったそうです。

プラグイン> プラグインブラウザ/インストーラ で検索、「Smart Archives Reloaded」をクリックしてダウンロード、有効化します。
設定>Smart Archives で、Use anchor links in blockをチェック、Exclude Categories by IDを「0」にして、「save changes」をクリックします。

ページ>新規追加で タイトル「記事タイトル一覧」とし、内容のところに[smart_archives](*)と記述して公開をクリック。 *前行の[](全角)は、実際には[](半角)であるが、半角にすると記事タイトル一覧データそのものが表示されるため全角にしています。

Exclude Categories by ID には、カテゴリのID番号を入れると該当するカテゴリの記事が除外されると思ったのですが、「0」ではすべての記事が表示され、「0」以外の番号では何も表示されません。私の知識不足が原因なのかどうか、とにかく「0」として記事を表示させました。

サイドバーのパーツの順番を入れ替える

サイドバーの表示の順番を入れ替えます。

外観>編集で「sidebar.php」を開いて、上の方に表示したい[calendar,category]を <li></li>で囲まれた部分ごとカット&ペーストしました。これはそんなに難しくありません。

ワードプレスの解説本

私はワードプレスがインストールされている状態で、そのブログの引き継ぎを頼まれて、ネットで情報を探しながら動かしていましたが、やっぱり一から勉強しようと思い解説本を購入しました。

八重洲ブックセンターとビックカメラ新宿店で探しましたが、ワードプレスの本は10冊ぐらいしかありません。多分、それぐらいしか発行されていないものと思われます。

そんな中で最初に買ったのは、「Wordpress レッスンブック 2.6対応」(ソシム)です。この本は、ステップバイステップを謳っているとおり、導入からサンプルブログの作成まで順を追って学ぶことができます。ただし、テーマやウィジェットについて触れられていないように、とにかく簡単にブログを始めたい人には向いていません。もっとも、そういう人はブログ構築ソフトを使うのかという疑問はあります。

次に買ったのは、「Wordpress サイト構築スタイルブック」(マイコミ)です。この本にひかれたのは、Chapter4実践編SAMPLE03で「ニュース/新着情報系コンテンツ」が紹介されていたからです。ブログというよりCMS(コンテンツマネジメントシステム)としての使い方が参考になります。このブログも、これからCMSに仕立てていきたいと思っています。

3冊目は、「WordPress 逆引きデザイン辞典」(SHOUEISHA)です。「ボロボロになるまで引かれたい。」というキャッチで買ってしまいました。

あとは、WordPress Codex 日本語版 のオンライマニュアル、先人のサイトを検索しながら勉強しています。

ワードプレスのテンプレート階層とは

サイドバーにある検索パーツの一つをコメント化する作業をしているときに、そもそも下記の検索プログラムの内容で検索ページに移る理由がわかりませんでした。まあ、機能しているわけですから問題ないのですが、そのままにしていると気持ちが悪いので調べてみました。

<!– ここから検索を表示 –>

  <li class=”widget” id=”search”>
   <h3><?php _e(’Search’); ?></h3>

   <form id=”searchform2″ method=”get” action=”<?php bloginfo(’home’); ?>”>
  
  <input type=”text”  onfocus=”doClear(this)” value=”<?php _e(’To search, type and hit Go’); ?>” name=”s” id=”s” style=”width:130px” /> <input type=”submit” value=”<?php _e(’Go’); ?>” />
   
   </form>
 
  </li>

<!– ここまで検索を表示 –>

formから、取得した name=”s” value=”検索語” で、メインページ(<?php bloginfo(’home’); ?>)に遷移したら、さらに検索ページ(search.php)に遷移して検索対象ページが表示されるわけです。index.phpにはそういう動作をするプログラムが書かれていませんし、header.phpにもありません。ネットで検索しても説明に行き当たりません。ワードプレスのマニュアル本をみても書かれていません。

結論をいうと、『WordPress Codex』(公式オンラインマニュアル)>リファレンス>テンプレート名優先順位>「テンプレート階層」に記述されていました。でも、「テンプレート階層」という言葉を知らないので探すのは大変でした。
そこには、ワードプレスは、最初に「URI に含まれるクエリ文字列とクエリタイプを照合し、要求されているページの種類(メインページ、カテゴリページなど)を判断。 」すると書かれています。
このブログですと http://www.proplink.jp/wp/?s=検索語というURIに遷移して、「s」から「検索結果ページ」→search.phpに遷移するということです。ああ、すっきりした。

マニュアル本には、「ページの構造とテンプレート」というような題でテンプレートファイルの適用順が説明されていますが、それを読んだ時は、意味がよくわかりませんでした。なぜ、遷移先のファイル名を指定しないのだろうかと思いました。ページのなかでのテンプレートの優先順位の記述だけだったからです。もっとも、マニュアル本は利用者を対象にしていますので、そこまで説明する必要がないということでしょうか。

WordPress Themes