追記(2012.04.02)
taxonomy-genre.php の記述を簡略化しました。
WordPressで音楽情報配信のコーナーを作ろうと思いまして、カスタム投稿タイプと、カスタムタクソノミーを作りました。しかし多くの人がつまづくように、僕もタクソノミーのアーカイブページでひっかかりました。最初のページは表示されるのに、2ページ目以降で 404 NotFoundになってしまったのです。
http://~/taxname/term/ ← 表示される
http://~/taxname/term/page/2/ ← 404 NotFound
課題は残ったものの一応原因が判明し、解決もしたのでメモとしてまとめたいと思います。なお、投稿タイプ、タクソノミーについては下記のサイトがとてもわかりやすいです。
主に使いそうなものをまとめました。
<?php // ページ数 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; // カスタム投稿タイプ「sounds」、カスタムタクソノミー「genre」、ターム「民謡」、新着4件取得 query_posts( array( 'post_type' => 'sounds', 'taxonomy' => 'genre', 'term' => '民謡', 'posts_per_page' => 4, 'paged' => $paged, 'order' => 'DESC' ) ); if (have_posts()) :while (have_posts()) : the_post(); ?> // ブログの記事出力と同じ要領 <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <?php endwhile; endif; wp_reset_query(); ?>
ただし複数のループをさせる場合は query_posts() ではなく get_posts() を使う。
参考:お手軽WordPress Tips:カスタムタクソノミーで作成した特定のタームに属する記事の一覧を表示数を指定して表示する - かちびと.net
参考:get_posts:WordPress私的マニュアル
WordPress 3.0からは「カスタム投稿タイプ」が使えるようになり、「カスタムタクソノミー」も使いやすくなりました。
「カスタム投稿タイプ」、「カスタムタクソノミー」についてはこちらの記事が大変参考になります。
》WordPressでサイト設計をする時に覚えておきたいポストタイプの特徴などいろいろ
どちらもスラッグを自由に設定でき、URLに反映できるようになっていますが、となると
もし同一スラッグのポストタイプとタクソノミー、記事と分類名(ターム名)があったらどうなるのか? と気になりました。
つまりこうです。どちらもURLは一緒になります。
http://~/ポストタイプ/記事
http://~/タクソノミー/分類名
↓
http://~/event/comike
http://~/event/comike
そんなわけで実験してみました。
ポストタイプ、タクソノミーを作成するにあたって、「Custom Post Type UI」プラグインを使用しています。
企業ページみたいに「固定のトップページ + 更新情報」ということをやる方法です。
実際に作ったものはこんな感じです。
WordPressは通常のブログ記事(投稿ページ)の他に、特定のページ(固定ページ)を
簡単に作れるのが特徴です。
ならば両方を同時に表示したいというのはわりと自然な欲求だと思うのですが、
意外なことに情報はほとんどありませんでした。
かろうじて見付けたのはこのへん。
トップページ用の固定ページテンプレートを作成します。
ここではファイル名を仮に「front_fix.php」とします。
ファイル名は何でもかまいません。
上で紹介した記事を元にしています。
<?php /* Template Name: FrontFix */ ?> ~中略~ <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> 固定ページの内容 <?php endwhile; ?> <?php endif; ?> <?php $my_query = new WP_Query('&cat=0'); ?> <?php if ($my_query->have_posts()) : ?> <?php while ($my_query->have_posts()) : $my_query->the_post(); ?> 新着記事の内容 <?php endwhile; ?> <?php endif; ?> ~中略~
最初のコメントでテンプレート名をつけます。
名前は任意ですが、わかりやすいものにしましょう。
次に固定ページの内容が入るエリア、新着記事が入るエリアとなります。
テンプレートを作成したら、テンプレートの保存フォルダにアップロードします。
新規ページの作成画面右側にテンプレートを選択する項目があります。
先ほど作成した「FrontFix」を指定します。
プレビューで確認すると、固定ページの記事の下に、投稿記事が表示されているはずです。
最後に[設定]>[表示設定]>[フロントページの表示]で「固定ページ」を選び、今回作ったページを選択して保存します。
固定ページ+投稿ページの完成です。
RuputerFanはXREAの上位プラン(?)CORESERVERを利用しています。
XREAとCORESERVERのPHPはCGIではなくApatchモジュールとして動いているので、
インストールには多少の 調整が必要なようです。
ダウンロード>pluginsディレクトリにアップロード>管理画面で有効にする。
というところまでは同じ。
設定画面に入ると
Warning! /virtual/sygnas/public_html/sygnas.jp/wordpress/wp-content/advanced-cache.php does not exist or cannot be updated.
なんてエラーが出ます。
wp-content/ディレクトリのパーミッションを「777」にし、
wp-content/cache/を作ってこちらも「777」に。
ふたたび設定画面を開くと WP_CACHEを trueにしろやとお告げが下るので、
wordpress/wp-config. php に
define('WP_CACHE', true);
という1行を追加します。スクリプトの最初の行がいいようです。
wp-content/ディレクトリに
advanced-cache.php
wp-cache-config.php
というファイルが追加されていたら、wp-content/ディレクトリは「755」に戻します。
三度設定画面を開くとずらずらと設定項目が並び、インストールが完了したことがわかります。
キャッシュを有効にするかを ON / HALF ON / OFF で選ぶようになっているので、
ONを選択して「update status」をクリックすれば全て完了です。
MTとWPを両方使ってみて感じるのはプラグイン導入の簡便さですね!
ラクチンラクチン超ラクチン。
従来通りにFTPでアップロードはもちろん、
Firefoxのアドオンみたいに 検索→インストール ができます。
設定も統一されたインタフェースで行える。
ヒロカワズタイプさんで書かれているようにプラグインの大量導入は
速度低下を引き起こすのですが、便利で簡単なもんでついつい入れてしまいますw
2010/01/14時点で導入しているプラグインはこのへんです。
Akismet
コメントスパム対策プラグインです。必須です。
コメントは解放していませんがたまにオープンするかもしれないので入れてあります。
コメントスパム対策Akismet導入方法 « BirDesign
Nonce, Please!
これもコメントスパム対策プラグインです。
Yuriko.Net » Nonce! Please
WP Multibyte Patch
日本語関係の不具合を修正するためのパッチ。基本です。
WP Multibyte Patch | EastCoder;
Ktai Style
携帯電話用ページを表示するためのテンプレート。
WordPress Plugins/JSeries » Ktai Style (携帯対応プラグイン)
WPtouch iPhone Theme
iPhone用ページを表示するためのテンプレート。そう、このブログはiPhoneも対応してるのです。
WPtouch: Mobile Plugin + Theme for WordPress ↔ BraveNewCode Inc.
Picasa Image Express
投稿時画面でGoogle Picasaの画像を貼りつけます。検索とかサイズ設定とか
いろいろ便利すぎて漏れそうになります。
Picasaからの個別画像をWordPressへ « Tone Color
WP-PageNavi
ページ番号のナビゲーションを加えるものです。基本中の基本ですねー。
power source* » WP plugin[up]: ページ番号ナビ – WP-PageNavi をアップグレード 2.02
おっと大切なものを忘れていました。
WP Super Cache
これはちょっと手順が必要だったので次の記事で。
MovableTypeからWordPressへ移行したわけですが、過去のコンテンツを引き継ぐわけでもなく、
難しいことはとくにしていません。
インストールは実にすんなり。
MovableTypeでは初期化でトラブルあったりしたけどw
インストールにあたり参考にしたサイトはこのへんです。