このブログは今後は更新されません。FE.labsにてWordPress向けの記事も更新してゆきますのでよろしくお願いします。
今後このドメインは、ファーストエレメントのWordPress関連業務のブランドサイトとして近くリニューアルする予定です(2012/8/24)。
カテゴリ&タグ&カスタムフィールド&年月&キーワードで絞り込み検索ができるプラグイン『FE Advanced Search』

WordPressとは(2)

WordPressとは、非常に多機能かつ無料のブログアプリケーションの名称。同類のものとして、有名な「MovableType」がある。

WordPressの概要は前回の記事
WordPressとは」にて

今回は、その多機能ぶりをより深く解説できればと思います。


 
■ブログのURL形式を自由に変えられる
 パーマリンク構造に柔軟性がある。デフォルトでは「http://www.○○○○.com/?p=123」のような形式だが、「http://www.○○○○.com/カテゴリ/記事ナンバー.html」 のように見せかけることもできる。

permalink_01.png

WordPressでは、見やすい、美しい、そしてSEOも考慮したURLを自分なりに設定でき、WordPressは内部的にそのURLを変換してデータベースから記事データを引き出している。

■再構築がいらない
 WordPressは記事を投稿/更新する際に「再構築」ということが行われない。記事ごとにHTMLファイルを構築するのではなく、ページへのリクエストがある毎にデータベースから記事データを引き出している。だから構築も何もない。
 Webサーバー上には、トップ階層の「index.php」ファイル(とアップロードしたWordPressのファイル)以外はサーバ上に存在しない。1000ページ分の記事を投稿しても、それらはMySQLのデータベースのテーブル上に収まっていて、記事へのリンクをクリックするとデータベースから記事データが呼び出されて、指定されたテーマ(theme)のテンプレートファイルに流し込まれて、画面上に表示される。
 レンタルサーバーに用意された「phpMyadmin」などのツールでMySQLデータベースの中を見ると、エクセルのシートのように、記事データが整然と並んでいる。

 結果として、投稿や編集の度に再構築で待たされるストレスがない。再構築エラー、というのもない。

 一方で、一般的に、再構築によって生成された静的なHTMLページへのアクセスのほうが、WordPressのように常にデータベースとやりとりしながら動的にページ生成する方法より、表示速度が早いとされる。

 特にポータルサイトのように1ページの中にたくさんの記事を並べるようになると、必然的にデータベースへの問い合わせ回数も増えるわけです。しかし、そういう時に便利なプラグイン(拡張機能)が用意されています。「WP-Cache」というプラグインはその名のとおり、一度アクセスのあったページの内容をそのままキャッシュ(一時的な静的HTMLファイル)として保存し、2回目以降のアクセスにはそのキャッシュファイルを表示させることで、表示速度を早くすることができます。サーバの負担も減ります。また、ページ自体のキャッシュファイルを生成するのではなく、データベースへのクエリをメモリ上にキャッシュするXCache for WordPress 0.6eAccelerator for WordPress 0.6といったプラグインもあります。これらのプラグインを使えば、再構築のいらない動的なサイトとMTのような再構築型の”いいとこどり”ができる(と考えています)。

■プラグインが豊富
 下記サイトからあらゆるジャンルのプラグインがダウンロードできる。英語サイトでありほとんどのプラグインの解説・管理画面は英語だが、多くは日本語環境でも問題なく使える…あるいは多少のカスタマイズで使える。
WordPress Plugin Database
Plugins Hosted On wp-plugins.org
WordPress Plugin DB Japan(日本語サイト)
WordPress Plugins/JSeries(日本語サイト)
 プラグインによって、phpファイルに初期設定を書き込むもの、管理画面からすべて設定するものなど様々だけれど、たとえばメールフォームや掲示板CGIの設定をしたことがあれば同じかそれ以上に簡単。日本以外で開発されたものでも、ソースコードをたどって、該当部分を英語から日本語に打ち直せばそのまま日本語表記に直すことができる場合も多い。その場合、自分のブログの文字コードに合わせてプラグインファイルを保存しないと文字化けする。

今後、有益なプラグインはこのサイトで紹介していきますが、例えば以下のようなことがプラグインで可能であり、WordPressの応用範囲が広がると思います。
・ログイン画面のカスタマイズ
・カスタムフィールド(いわば自由欄)の有効活用
・ユーザーレベルごとにアクセスできる管理画面の制限
・タグクラウド(SEO的にも有効)
・AdSenseのシェアリング(共同運営の場合の利益分配)
・サイト内の関連記事自動リンク
・GoogleMapの組み込み・記事ごとにMap表示ボタンを自動追加
・RSSデータの記事内、テンプレート内への流し込み
・記事の表示期間(公開・非公開)の設定
・記事ごとの閲覧数表示(アクセスカウンター)
・携帯から投稿/閲覧
・メールから投稿
・ショッピングカート機能の組み込み
・投票/レーティング
・新着記事をメールでお知らせ(紹介済み)
・Googleサイトマップファイル自動作成
・記事のランダム、新着、更新、コメント一覧(紹介済み)
・ビジュアルリッチエディタの組み込み(紹介済み)
・投稿画面内でのPHPの実行
・GoogleSitemapの生成
・記事ごとのhead内metaタグ生成
・パンくずリスト

■テンプレートのカスタマイズが自由度抜群!
 プラグインで探すのと、テンプレートカスタマイズで解決するのとどっちが早いか、どちらがフレキシブルか、悩むことが結構あります。そのくらいカスタマイズ自由度が高い、と感じさせてくれます。例えばtitleの見せ方も、トップページでは「ブログタイトル」、個別ページでは「記事名 | カテゴリ | 省略ブログタイトル」 、Pageで作成した記事は個別に書き込みなど、is_single()、is_page()などの「コンディショナルタグ」を使って、1つのヘッダテンプレートでもサイト内のセクションに応じてtitleの見せ方を変えることができます。メンテナンス作業が軽減されるのでサイト規模が大きくなるほど重宝します。
 また、WordPressのテンプレートはコンポーネント化(パーツ化)されています。先に述べたヘッダテンプレート「header.php」は、いわばボディテンプレートの「index.php」の上部に<?php get_header(); ?>と書くだけで呼び出されます。サイドバーも同様に<?php get_sidebar(); ?>と書けば流し込むことができます。なので複数のテンプレートにサイドバーが設置されていても、このサイドバーテンプレート「sidebar.php」を修正するだけですべてのページのサイドバーが更新完了します。
 さらには自分で自由にページ丸ごとでもページの一部でも自分でテンプレートを作り、それを他のテンプレートに読み込ませることができます。たとえば左サイドバー用テンプレート「sidebar_left.php」をつくり、index.phpファイルの先頭でヘッダテンプレート読み込みのあとに<?php include (TEMPLATEPATH . ‘/sidebar_left.php’); ?>として左サイドバーを読み込み、index.phpファイルの最後に標準のサイドバー「sidebar.php」を読み込ませれば、ダブルサイドバーのページを作成できます。
 これ以外にもまだまだテンプレートの使い方次第で、どんな複雑で多機能なサイトでも、極力メンテナンスの手間を省くことができます。豊富なプラグインとこのテンプレートのカスタマイズの自由度により、ふつうのHTMLサイトをつくる理由・魅力がなくなってしまいました。私は最近は、自社サイトもお客様のサイトもほぼ100%、WordPressだけで制作しています(たまにMovableType、XOOPS)。いわゆるビジネスブログ/CMSなわけですが、ショッピングサイトもフォトギャラリーもポータルサイトもクチコミサイトもWordPressで制作しています。
 さらにSQLのクエリが書ける人は、MySQL上のテーブルに格納されたWordPressのすべてのデータを自由に呼び出すことができるので、もうほとんど不可能はないのではないか?と思わせます。一から機能をつくらなくても、既存のプラグインにプラスαのカスタマイズを施し、データベースから取り出した文字列/数値を加工して足したり引いたりして、それをテンプレートタグの引数に入れたり、HTMLの一部に埋め込んだり…CSSによるデザインを徹底すれば、サイトデザインも、もちろん内部的な機能も自由自在です。

■カスタムフィールドの存在
 これがなければ「CMSツールとして」のWordPressの魅力は70%…いやもっと減っていたでしょう。上記のような魅力が十分あるのですが、このカスタムフィールドがあることで(大げさな話)数百万するCMSアプリに競合することだって可能になります! (…いや、そういう高価なCMSを実際に使ったこともないのにそんなこと言ってはいけませんが)
 テンプレートタグthe_metaを使っているかぎりはこの機能は何の役にも立ちません…ただのオマケのようで。しかしget_post_meta()を使えば…他にも呼び出し方がありますが…例えばシゴトの森のような求人サイトや不動産検索サイト、飲食店ガイド、その他地域情報サイトがWordPressを使って構築できるようになります。この機能と複合条件検索(AND検索、絞り込み検索…ウチでは独自につくりましたが)を使えば立派なポータルサイトの完成です。

■結局のところWordPressのメリットは
 もしそこそこの規模のポータルサイトを”1から”つくろうとしたら…数百万~1千万越えることだってあるのを、WordPressというベースとなる超高機能な母艦があるおかげで、それらに匹敵するぐらい高機能なものを数分の1~数十分の1のコストにすることができる。
 そして、今までポータルサイトのような大規模でテクニックのいるものは荷が重かった中小Webサイト事業者、特にデザインはできるけどプログラム関係は苦手な事業者でも、少しがんばればポータルサイトのような領域まで業務範囲を拡げることが出来る。
 (これは私の印象ですが)ポータルサイトをオープンソースプログラムで、という時の選択肢として「XOOPS」という素晴らしいプログラムがありますが、デザイン的な自由度はWordPressの方が高いと感じました。「ブログツールなのにブログらしくないデザイン」というのは、CSSをフルに使ったWebデザインを日頃している人ならすぐにできるでしょう。
 それから、WordPressはPHPでつくられています。なので、もしWordPressに足りない機能があれば、PHPの関数を、その場でなんの準備もなく、シームレスにWordPressのテンプレートタグやWordPress独自の関数と併用することができます。


申し訳ありません、あまりきれいにまとめた文章ではないので読みにくかったかと思います。

もしWordPressで自社サイト制作やポータルサイト構築をお考えでしたらファーストエレメントがお手伝い致します。ここ数年、ほぼ100%、WordPressに入れ込んでおります。テンプレート構築、プラグイン設置代行、など部分的な作業も相談に応じます。

このエントリーをはてなブックマークに追加

6件のコメントがありますコメントのRSSフィード

  1. hrkd.net より:

    はじめまして。私もWordpressを使ってサイト構築をしていますが、文中の
    ・記事の表示期間(公開・非公開)の設定
    を可能にするプラグインは既にあるのですか?
    かなり探しまわっても見つからずに、やはり作るしかないのかと考えておりました。参考URLなど教えていただけると嬉しいです。

  2. 宮澤 より:

    「Posts Expire」「Posts Begin」
    http://wunder-ful.com/wordpress-plugins
    知ってはいたのですが、実はまだ私も使ってないです。。

    あと、こちらの記事も参考になると思います。
    「Expire Posts」
    http://wiki.wordpress.org/?pagename=ExpirePosts

    カスタムフィールドに掲載終了日を設定し、記事呼び出しのループが始まる直前でこの値を読みにいって、現在の日時が掲載終了日より前または空欄だったら表示する、という内容です。

  3. 宮澤 より:

    上の2つ目の例で「直前」と書きましたが「直後」の間違えです。

  4. hrkd.net より:

    おおーーっ
    ありがとうございます!
    大型の店舗などのHPでは、キャンペーンなどの期間限定の記事がかなり多く、公開期間設定のプラグインが見つかればCMSを導入するのに、、、と思っておりました。(未来投稿機能はデフォなんですが、終了日時設定はありそうでないんですよねえ)
    しかし、カスタムフィールド+ループを使ったものは目から鱗でした。
    ありがとうございました!

  5. みやざわ より:

    上記wikiのリンクがなくなっていますね。

    期間で記事を表示・非表示するには、こちらの記事もご参考ください。

    http://wpcms.jp/article/80974910.html

    カスタムフィールドに掲載開始&終了日時をそれぞれ設定しておいて、

    記事を表示するテンプレートで

    if (( 掲載開始 < 現在日時 ) && ( 現在日時 < 掲載終了)):
    —–ここに記事ループ—–
    endif;

    のようにすればできます。

  6. Yuriko.Net より:

    wpplugins.jp がドメイン失効していた

    wpplugins.jp のドメイン情報
    かつて、WordPress のプラグイン情報を日本語で発信していた「WP Plugin DB JAPAN」(リンク先ははてなブックマーク) が、いつの間にかドメイン失効していました。現在…

コメント/質問お待ちしています

トラックバックURL:
http://wpcms.jp/154/trackback/

CATEGORY

ARCHIVE

2017年11月
« 12月    
 1234
567891011
12131415161718
19202122232425
2627282930