2010年09月02日
WordPress3.0で企業サイト構築中なので色々わかったことをメモして行きます。
カスタム投稿タイプ、カスタム分類を使うにはプラグインが便利
カスタム投稿タイプやカスタム分類(タクソノミー)をWordPressに追加するにはfunctions.phpにアクションフィルタを書いてもいいのだが(8割くらい書いちゃってから気づいたのだが)、すでに良いプラグインがいくつかあるのでプラグインを使うのが便利。
なかでもCMS Pressはデフォルトでパーマリンク構造を設定できるのでおすすめ。
追加した投稿タイプの新着を表示
WP_Queryを使う。Codexのカスタム投稿タイプページに実例がある。
追加した分類(タクソノミー)でソートした新着を表示
WP_Queryを使う。Codexのカスタム分類ページに実例がある。
IDやスラッグから追加した分類(タクソノミー)の情報を取得
get_term_by()関数を使えばOK。
その他、随時追加して行きます。
2010年08月24日
WordPress3.0以降で標準で使える様になった、複数のブログをひとつのWordPressで管理できるネットワーク機能。ネットワーク内のブログの新着記事は普通トップページに表示したいと思うので、表題の機能は需要がありそうだからテンプレートタグがあってもいいのになぁと思うのですが、見つからなかったので自作。いや、ほんとに探したらあるのかもしれないけど!
方針
functions.phpに、ネットワーク内の全ブログから最新1件の投稿を取得し、時系列で並び替える関数を用意する。表示はお好みで。
関数(functions.phpに入れるととりあえず使えます)
// $startを1以上にすると最新のn件を飛ばして取得できます
// $numで取得する件数を指定。
function get_recentposts_from_network( $start = 0, $num = 10 ) {
$recent_posts = get_site_option("network_recentposts");
// データが残っていない場合、60秒以上経過している場合はアップデートする
if( is_array( $recent_posts ) ) {
if( ( $recent_posts['time'] + 60 ) < time() ) { // cache for 60 seconds.
$update = true;
}
} else {
$update = true;
}
if( $update == true ) {
unset( $recent_posts );
// 全ブログのIDを取得
$blogs = get_blog_list( 0,'all' );
if( is_array( $blogs ) ) {
reset( $blogs );
// 各ブログの最新1件を取得する
foreach( $blogs as $blog ) {
switch_to_blog( $blog['blog_id'] );
$posts = get_posts( 'numberposts=1' );
if( $posts ) {
foreach( $posts as $post ) {
$recent_posts[$blog['blog_id']] = $post->post_date;
$post_list[$blog['blog_id']] = $post;
} // endforeach
unset( $posts );
} // endif ( $posts )
restore_current_blog();
} // endforeach
// 投稿日時で並べ替える
arsort( $recent_posts );
reset( $recent_posts );
foreach( (array) $recent_posts as $key => $details ) {
$t[$key] = $post_list[$key];
} // endforeach
unset($recent_posts);
$recent_posts = $t;
update_site_option( "network_recentposts", $recent_posts );
} //endif ( is_Array( $blogs ) )
} // endif ( $update == true )
if( $recent_posts )
return array_slice( $recent_posts, $start, $num, true );
return array();
}
(続きを読む…)
2010年07月01日
以前にもWordPressのプラグインをご紹介しましたが、最近受託案件でインストールするプラグインの顔ぶれが決まって来ましたので、改めて「必ず入れるプラグイン」としてご紹介します。なお、紹介はアルファベット順です。
1. All in One SEO Pack
titleタグやmetaタグの操作ができるプラグイン。サイト名は会社名だとしても、トップページではキャッチコピーなどもtitleタグに含めることが多いですが、テーマで対応するよりはこのプラグインで対応した方が何かと便利だし、基本的なSEOもできておトク。
2. Breadcrumb NavXT
コーポレートサイトには必須のパンくずリストナビゲーション。悩まず、このプラグインを入れておけ。
3. Contact Form 7
問い合わせフォームをサイトにつけるなら、とりあえず第一候補。10分で設置完了の手軽さ。
4. Custom Field Template
だいたいの案件でカスタムフィールドを使うことが多いですが、入力しにくいのがネック。でもこのプラグインがあれば問題ない。カスタムフィールドを使わない場合でも、デフォルトの入力欄を消せるのでやはり必ずインストールしています。
5. Google Analytics for WordPress
Google Analyticsに対応するプラグイン。ログイン中はトラッキングコードを出力しない設定ができますので、正確に来訪者のログを取りたいなら導入必須。
(続きを読む…)