WordPressのカスタム投稿タイプを企業サイトに使う場合の(超個人的)決定版

こんにちわ。
夢の中でコーディングした内容をコピペする方法がないか模索中の百田です。

エクストではWordPress3.0の頃から
カスタム投稿タイプを導入してサイトを構築しているのですが
3.0の頃と違い各所でも情報が豊富になりました。

今回は個人的メモを兼ねてカスタム投稿タイプの利用法をまとめたいと思います。

私がカスタム投稿タイプを利用する際のポイントはこちらです。

●プラグインは利用しない。
プラグインを利用する方法もありますが、シンプル好きなのでプラグインは使用せずにfunction.phpに記述します。
●企業サイトで使えるスラッグにする
スラッグに日本語が出てしまうなどはNG。企業サイトとして自然なURLを目指します。
●一覧用ファイルはひとまとめに
メンテナンス性を考え、taxonomy.phpは使用せずarchive.phpにまとめます。

今回は「書籍」という項目で
カスタム投稿タイプを利用する場合を想定して
構築を進めたいと思います。

最後にサンプルファイルを用意していますので
詳しくはサンプルファイルをダウンロードして確認してください。

1.カスタム投稿タイプの設定

function.phpに下記の内容を記述します。
基本的には「書籍」「book」の記述を
適宜置き換えるだけでOKです。

/* ★書籍ここらから★ */
register_post_type(
'book',
  array(
  'label' => '書籍',
  'hierarchical' => false,
  'public' => true,
  'query_var' => false,
  'menu_position' => 5,
  'has_archive' => true,
  'supports' => array('title','editor','author') 
  )
);

  /* カスタムタクソノミーを定義 */
  register_taxonomy(
	'book_cat',
	'book',
	array(
	'label' => 'カテゴリー',
	'hierarchical' => true,
	'rewrite' => array('slug' => 'book')
	)
  );
  /* カスタムタクソノミーを定義ここまで */
  
  /* 管理画面一覧にカテゴリを表示 */
  function manage_book_columns($columns) {
	$columns['book_category'] = "カテゴリー";
	return $columns;
  }
  function add_book_column($column_name, $post_id){
	if( $column_name == 'book_category' ) {
    //カテゴリー名取得
	if( 'book_category' == $column_name ) {
    	$book_category = get_the_term_list($post_id, 'book_cat', '', ', ', '' );
    }
    //該当カテゴリーがない場合「なし」を表示
    if ( isset($book_category) && $book_category ) {
        echo $book_category;
    } else {
        echo __('None');
    }
	}
  }
  add_filter('manage_edit-book_columns', 'manage_book_columns');
  add_action('manage_posts_custom_column',  'add_book_column', 10, 2);
  /* 管理画面一覧にカテゴリを表示ここまで */
  
/* ★書籍ここまで★ */

タクソノミー(カテゴリ)が不要な場合は、
15行目「 /* カスタムタクソノミーを定義 */」から
48行目「/* 管理画面一覧にカテゴリを表示ここまで */」までは不要です。

例としてタクソノミー(カテゴリ)に
「ノンフィクション(nonfiction)」を追加した場合
通常スラッグは以下のようになります。

●書籍一覧(カスタム投稿タイプ)

http://ドメイン/book/

●書籍一覧 > ノンフィクション一覧(タクソノミー)

http://ドメイン/cnonfiction/

ノンフィクション一覧のスラッグで
本来は親子関係をもった http://ドメイン/book/nonfiction/ としたいところですが
17行目で定義した _cat がくっついしまい親子関係がしっくりきません。

そこで22行目のようにリライトしてあげます。

'rewrite' => array('slug' => 'book') 

これでスラッグが親子をもった(ような)表示になります。

●書籍一覧 > ノンフィクション一覧(タクソノミー)

http://ドメイン/book/nonfiction/

function.php記述のポイントは、has_archive 、hierarchical、rewriteの設定ですが
これ以上突っ込まれると説明できる自信が無いので割愛します。。。
まぁこの通りに記述してやってください。

2.スラッグをページIDにするためのリライト設定

カスタム投稿タイプでは通常、/book/本の名前(記事タイトル)/ のように
スラッグ名に記事で設定したタイトルが入ってしまいます。
当然、日本語で本のタイトルを入れるとスラッグにも日本語が入ることになります。
ブログならまだよいのですが、企業サイトではあまり好ましくありません。
今回は /book/39.html のようにページIDで表示するようにします。
こちらもプラグインを利用する方法が多く出まわってますが
プラグインは使用せずにfunction.phpに記述します。

/* post_id.htmlにRewrite */
add_action('init', 'myposttype_rewrite');
function myposttype_rewrite() {
    global $wp_rewrite;

    $queryarg = 'post_type=book&p=';
    $wp_rewrite->add_rewrite_tag('%book_id%', '([^/]+)',$queryarg);
    $wp_rewrite->add_permastruct('book', '/book/%book_id%.html', false);

}

add_filter('post_type_link', 'myposttype_permalink', 1, 3);

function myposttype_permalink($post_link, $id = 0, $leavename) {
    global $wp_rewrite;
    $post = &get_post($id);
    if ( is_wp_error( $post ) )
        return $post;
    $newlink = $wp_rewrite->get_extra_permastruct($post->post_type);
    $newlink = str_replace('%'.$post->post_type.'_id%', $post->ID, $newlink);
    $newlink = home_url(user_trailingslashit($newlink));
    return $newlink;
}
/* post_id.htmlにRewrite */

こちらも「book」の記述を適宜置き換えてください。

3.パーマリンク設定の変更

管理画面の「パーマリンク設定」の「カスタム構造」で下記の内容に変更します。
※以前は「/%post_type%/%post_id%.html」でしたが「投稿」で不具合があるので変更しています。(追記2012/11/14)

/%category%/%post_id%.html

最後に「変更を保存」を押して保存してください。

4.詳細ページの設定

詳細ページは single.php を用意します。
これは、今までの構築方法と変わらないので割愛します。
single-book.php の専用ファイルを用意することで、
書籍専用の詳細ページを表示することもできます。

5.一覧ページの設定

一覧ページは archive.php を用意します。
詳細ページ同様、 archive-book.php を用意することで
専用の一覧ページを表示することもできますが、
今回は条件分岐で一覧を表示します。

<!-- 書籍一覧 -->
<?php if (( get_post_type() == 'book')) : ?>
  <h2>書籍</h2>
  <hr>
  <h3>カテゴリリスト</h3>  
  <ul>
  <?php wp_list_categories('title_li=&taxonomy=book_cat'); ?>
  </ul>
  <hr>
  <h3>書籍一覧 <?php single_term_title(); ?></h3>
  <ul>
  <?php if (have_posts()) : ?>
  <?php while (have_posts()) : the_post(); ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
  <?php endwhile; ?>
  <?php endif; ?>
  </ul>
<?php endif; ?>
<!-- 書籍一覧ここまで -->

カスタム投稿タイプの一覧の archive.php と
タクソノミー(カテゴリ分類)一覧の taxonomy.php は通常、別ファイルになりますが
同じデザインの場合、2種類に分かれるとメンテナンス性が悪いので
archive.php のみを使い一つのファイルに集約します。

6.補足

これでカスタム投稿タイプの設定は完了です。
あとは、カテゴリや記事を登録して動作チェックしてみてください。
また、function.phpを変更する場合は、
最後に必ず管理画面のパーマリンク設定で
「変更を保存」をクリックして「カラ更新」をかけてください。
Rewrite設定が反映されずに404になることがあります。

今回の記事を書くにあたって、
下記ページを参考にさせて頂きました。感謝!

http://webpaprika.com/387.html
http://webpaprika.com/371.html
http://varl.jp/note/wp-3-1-custom-post-type-settings-summary

7.サンプルファイル

今回の内容をまとめた、超シンプルなサンプルテーマを用意しました。
サンプル内では「書籍」と「DVD」の
2種類の投稿タイプを設定していますので、より実践的な内容になっています。
DIMG0289 (2).gifご自由にどうぞ。
 
 
サンプルテーマをダウンロード
 
※「管理画面一覧にカテゴリを表示」にバグがあったためサンプルテーマを更新しました。2012/06/20            

さよなら「かな印字」

こんにちわ。アルコールが原動力の百田です。

キーボードで日本語を入力するときは、
「ローマ字入力」ですか?それとも「かな入力」?
私の周りではほとんどの人がローマ字入力なのですが
「かな入力」の人ってどれくらいるのでしょうか??

そんなことはさておき「ローマ字入力」の私に最も不要なものは
キーボードのキーに印刷された「かな印字」です。
個人的にこれがゴチャゴチャして大嫌いなんです。

そんな私が好きなのキーボードが
「かな印字」の無い海外のUS配列キーボード。

上の画像を見てもらえば分かるのですが、
かな印字のないUS配列キーボードはシンプルで美しい!
キーの真ん中にすっとアルファベットがたたずむ安定感が素敵です。

日本語キーボードとキー配列が若干違うので、
記号文字を入力するときに多少戸惑うこともありますが
このシンプルさには勝てません。

Macなら購入するときにUS配列を選ぶこともできます。
さぁみんな、レッツUS配列DIMG0290 (2).gif

iPhoneで音楽体験!

遅ればせながら、、あけましておめでとうございます!
一年中お屠蘇ウェルカムの百田です。

エクストが運営する「お仕事アプリ.com」では
ビジネスアプリを中心にレビューしていますが、
今回は超個人的に楽器や音楽系のアプリを紹介します。

ギターチューナー&メトロノーム

Gibson Learn & Master w/ StudioShare
ギブソンのチューナーアプリ。iPhoneアプリなら無料なものもたくさんあります!
Ludwig Metronome
楽器の練習にあると便利なメトロノームも無料アプリがたくさん!

ギター

iShred
あらかじめコードを登録するだけで簡単に弾けるギターアプリ。複雑なバレーコードも超簡単!

ターンテーブル

Baby Scratch
簡単にスクラッチ体験出来るDJアプリです。意外とハマリます!
djay
iPadですが本格的なDJプレイならこちら。1700円しますが、DJセットに十万円以上かけた経験があるので超オトク!

他にもドラムやピアノのアプリもたくさんあるので
複数人で集まって演奏してみるのも楽しいかもしれませんね〜

ニューヨークの地下鉄で演奏するiPhoneバンド

食欲の秋、肥満の秋

こんにちはメタボ百田です。

食欲の秋ですね~
食べ物の美味しい季節で調子に乗ったわけでなはいですが
ここ1~2年で5kg以上太ってしまいました。。

ふとお腹をみると浮き輪のような脂肪が。。このままではヤバイ!!

ということで運動不足解消を兼ねてジョギングを始めました。

ただ普段運動不足な私がいきなり走ったせいか
一週間程で膝に違和感が、、いっ痛い。。。

ジョギングは体重の三倍の重力がかかるそうです。
運動不足の体に無理があるのは当たり前です。

もう普通に走ることもできないなんて。。。
公園を走り回った少年時代が走馬灯のように駆け巡ります。

そんな私に救世主が現れました!
ワコールのCW-Xです!

今回購入したCW-X EXPERTは
「テーピングの原理により、運動時のひざ関節の安定を追求」とのことで
ネットの評判もなかなか良さそう。早速ネット通販で購入しました。

数日後商品が到着し、すこし走ってみると。。。

「こっこれは!!!まったく痛くない!普通に走れるやないか!!」

こんなに違うとは!スゴイよワコール!
これからジョギングを始めたいという方には本当にお勧めです!

スノーボードなど、他のスポーツにも使えるので
コストパフォーマンスも結構良いのではないでしょうか!?

あっ「お仕事アプリ.com」でジョギングに便利なアプリを
レビューしてますのでコチラもチェックしてみてください!!

ビジネスアプリのレビューサイト「お仕事アプリ.com」をリリースしました!

スマートフォンを買ったのに仕事での活用法がわからない!
そんなあなたに送る、ビジネスアプリのレビューサイト「お仕事アプリ.com」をリリースしました!

エクスト社員は全員がiPhone、Android使用のスマホマスター!
そんなスマホマスターが実際に使ってみて「これは便利!」と思ったビジネスアプリをレビューします。

アプリレビューの他にも、スマホ初心者に向けた解説やスマートフォン周辺アイテムレビューなど特集も配信します!
今後は漫画家渡邊ジョンさんの協力でスマホ漫画連載も始まり、ますます目が離せなません!

そこのさえないアナタ!「お仕事アプリ.com」でビジネスアプリを使いこなしハイソでモテモテな人生を送りましょう!

→お仕事アプリ.com

今年の夏は快適に

こんにちわ32歳独身男、百田ですcherry.gif

先日誕生日birthday.gifを迎えたのですがleo.gif
エクストメンバーDIMG0289 (2).gifから素敵なプレゼントをいただきましたgood.gif

o0020002010329133136.gif卓上型扇風機ですo0020002010329133136.gif

暑がりsweat01.gifの私にはぴったりのプレゼントですo0020002010319047029.gif

USBから電源を取るので、
パソコンpc.gifが近くにあれば電源を気にしなくてもOKですflair.gif

節電が訴えられている今年t-shirt.gif
クーラーwobbly.gifばかりでは健康に良くないですのでdown.gif
みなさんも卓上型扇風機いかがでしょうかo0020002010472844539.gif
デスクに爽やかな風が吹き抜けますよーmini-hutaba.gif

大喜利でうまいこと言いたいんや!

今週末は『IPPONグランプリ(大喜利番組)』が放送されますね。
大喜利好きの私は、先週から楽しみで落ち着きません。

大喜利と言えば落語家やお笑い芸人が答えるものですが、
インターネットやスマートフォンを活用すれば一般の方も気軽に参加する事が出来ます。

今回はそんな大喜利コンテンツを紹介します。

ケータイ大喜利

参加型の大喜利といえば『ケータイ大喜利』が一番有名ですね。
生放送中に出題される大喜利のお題に「答え」を携帯で投稿して参加します。
最近、スマートフォン対応になったのでますます便利になりました。
何度か参加してますが採用される気配すらありません。。。

ケータイ大喜利オフィシャルサイト

ついったー大喜利

twitterを活用した、大喜利サービスです。
一日一つのお題がつぶやかれますので、お題に対してRTすることで参加できます。

お題と同時に回答例も投稿されるので、
大喜利は難しいという方でも気軽に参加できるサービスですね。

ちなみに今日のお題は、

お題:「経済学者がキャバクラで言いそうな事を教えて下さい。」
回答例:「俺の股間をディスクロージャー」

だそうですshine.gif

ついったー大喜利

大喜利は頭の体操にもなりますし
クリエイティブな発想が必要な方にはもってこいじゃないでしょうか。

みなさんも大喜利サービスでボケまくりましょう!

Photosynthで簡単パノラマ撮影!

これは久々にヒットアプリです!
iPhoneで感単にパノラマ撮影が出来る「Photosynth」を紹介します!
マイクロソフトがなんと無償で公開しています(太っ腹!)

まずはコチラをご覧ください。
(「Click to view」を押してください。 閲覧にはSilverlightのインストールが必要です。)

これがiPhoneだけで出来るんですスゴクないですか?
エクストの汚い事務所が丸わかりです。。。

撮影方法はいたって簡単。画面中央をタップして記録開始。
あとは枠がグリーンの状態をキープしながら
ゆっくり360℃まわるだけで自動保存してくれます。

賃貸物件の案内など、ビジネスのアイデアもたくさん出てきそうですね!
無料アプリなので皆さんも一度お試しください!

【エクストの名画伯は誰だ!?】クッパ編

こんにちは、百田ですicon_biggrin.gif
さて今回も各所で話題沸騰のこの特集

「エクストの名画伯は誰だ!?」

エクストメンバーには天才がまだまだ潜んでますよ

さて、今回のテーマはみんな大好きスーパーマリオブラザーズから「クッパ」です。

1985年の登場からマリオの悪役を演じ続けるクッパです。
背中の甲羅や牙などの特徴を、画伯達はどう表現するのか楽しみです!

では、今回の挑戦者です!

bell.gifエントリーナンバー1 久保画伯

この企画の常連画伯!このタッチで怖そうな雰囲気をどう表現するのか!?

bell.gifエントリーナンバー2 高畑画伯

初参戦!マリオブラザーズからヤリこんだ世代でしょう!楽しみです!

bell.gifエントリーナンバー3 ほうしょう画伯
この企画のダークホース!今回はどんな名画を送り込んでくるのか!

(さらに…)

クリック募金しませんか?

最近、「伊達直人」と名乗る方が児童養護施設に
ランドセルを届けるという、心温まるニュースが話題ですね。

私たちが気軽にできる慈善活動として募金がありますが、
今回はインターネットならではの「クリック募金」を紹介します。

クリック募金の仕組みは、募金をしたいと思っている人がクリック募金の設置されたサイトで、
特定の箇所をクリックすると、クリックした人に代わって企業が寄付をしてくれるという仕組みです。
募金の費用は企業が代わりに負担してくれますので、皆さんに負担はかかりません。

募金の内容は、途上国の子どもたちにワクチンを届けたり、障害者のための支援と様々です。
一度のクリックで平均1円~3円程度の寄付ができ、1サイトで1日1回の募金ができます。
さっそくクリック募金したい方へ代表的なサイトをご紹介します。

クリックで救える命がある。 | dff.jp

クリックで救える命がある。 | dff.jp

ページの左上に「コスモ石油」や「エイブル」と書かれたボタンがありますね。
そのボタンをクリックすると各企業のクリック募金ページに移動しますので、そこで募金をしてください。
1月17日の時点で3億円以上の寄付がされています。

みなさんも1日1回、暇な時間を見つけてクリックしてみては如何でしょうか?