WordPressのことです。
get_the_category()なんかでやるのが普通ですが、category.phpのなかで普通じゃないことをやったりすると、get_the_category()だとカテゴリがとれなくなるときがあるので、汎用的に取る方法。

$uri  = $_SERVER["REDIRECT_URL"];	// "/items/category/blog/page/2"
$url  = explode("/", $uri);	// 0="", 1="items", 2="category", 3="blog", 4="page", 5="2"

こんな感じでURIをぶった切ればカテゴリが取れるよねということ。
“/page/2″が付いているのは2ページ目を取得するときのURLはこういう風になるよという例です。
 
あと、ブログは1ページ5件表示したいけど、商品一覧は1ページ20件表示で、○○は○件表示でみたいにカテゴリによって表示件数が変わる場合、表示設定だけじゃダメですよね。

query_posts($query_string.'&posts_per_page=5');
if (have_posts()) {
  while (have_posts()) {
    the_post();

query_posts()に posts_per_pageを付けて再実行させてやるっつうことでOK。
なんとなく、if (have_posts()) の下に入れたくなるけど(表示するものがあるときだけやればよくね?)、そうすると、2ページ目、3ページ目にいった場合、have_posts()は表示設定で決められた件数分だけページをカウントして、有る無しを判断するので、下に入れるのはNGです。(8件投稿があって、表示設定が10件で、posts_per_page=3の場合、1ページ目はいいけど、2ページ目にいったところで11件目はないよということになる)
 
余談。データがないときはどうするか。カテゴリ・リンクだけ先に作っておいて中味がまだないとき(いずれ埋まる前提)、先々使わなくなる「ありません」画面を作るのはしゃくだなというとき。

if ($cat === NULL) {	// 表示データがない場合はTOPへ飛ばす
?>
<meta http-equiv="Refresh" content="0; URL=">
<title> - </title>



&lt;?php
} else {

こんな風にしてTOPへ飛ばしちゃいます。楽ちんですね。

function small_image($url, $siz = "medium") {
  $attachments = get_children(array('post_parent' =&gt; get_the_ID(), 'post_type' =&gt; 'attachment', 'post_mime_type' =&gt; 'image', 'orderby' =&gt; 'menu_order'));
  $attachments_count = count($attachments);
  foreach ($attachments as $key =&gt; $value) {
    if ($attachments[$key]-&gt;guid == $url) {
      return wp_get_attachment_image_src($key, $siz);	// "thumbnail","medium","large","full"
    }
  }
  return false;
}

the_post()したあとで使うこと。そうしないと、get_the_ID()がちゃんと値を返さないから。(当たり前)
引数($url)には、オリジナル・サイズ(fullサイズ)の画像URLをセットしておく。
記事に紐づいた画像は1つとは限らないので、なんらかの方法で画像を特定できないと困るということと、基本的にカスタム・フィールドに画像を登録して使うことを想定しているのでこういう仕様になってます。
サイズはサムネイル(”thumbnail”)、中(”medium”)、大(”large”)、フルサイズ(”full”)で、指定しなければ中サイズを返します。
戻り値は配列で、$ret[0]=そのサイズの画像URL、$ret[1]=幅px、$ret[2]=高さpxです。
使い方はこんな感じ。

$image = small_image(post_custom('cf_image_1'));  // カスタムフィールドから画像URLをセット
if ($image !== false) {
  &lt;a href=&quot;"&gt;
  &lt;img src=&quot;" width="" height="" /&gt;
  </a>
}

 
参考したページ:画像URLの取得画像ファイルの情報を取得する2.5 How to create a category template for a gallery ?WordPress2.5~2.6 サムネイル画像を取得して表示カスタムフィールドに登録した画像のサムネールやらを取得する。WordPress 2.1 のアタッチメント API

こういうPHPの挙動をちょっと試したいときは、codepadがオススメ。(<?php と ?> でくくって、ちゃんと echoしないと出力はされないよ)
 
PHPで単語の最初の文字を大文字にする ・・・ ucwords($str)


 
PHPで数字を3桁でカンマ区切りにする ・・・ number_format($num)


 
PHPで配列の最初と最後の要素をとる ・・・ reset/end


カテゴリを全部とってきて、特定の親(ここでは11)のものだけ、カテゴリ・リストに追加して、ついでにパーマネントリンク付き<li>を作る例。

$arc_str = "cat=";
$cat_str = "";
$cat_all = get_terms('category', 'fields=all&amp;get=all&amp;orderby=term_id');
foreach ($cat_all as $cat) {
	if ($cat-&gt;parent == 11) {
		$arc_str .= $cat-&gt;term_id.",";
		$cat_str .= '<li class="cat-item"><a>term_id).'" title="'.$cat-&gt;name.'"&gt;'.$cat-&gt;name.'</a></li>';
	}
}
$arc_str = substr($arc_str, 0, strlen($arc_str)-1);
$re_str  = $arc_str."&amp;type=postbypost&amp;limit=5";

 
使い方は、次の通り。

<ul class="recentEntries">

</ul>

<ul class="category">

</ul>

<ul class="archive">

</ul>

kwebble_archives_by_catというカテゴリを引数に入れられる wp_get_archives()プラグインを入れておく必要があります。
特定カテゴリの最新投稿と特定カテゴリのみの一覧、特定カテゴリだけのアーカイブになります。
 
※ ここ(WordPressで全てのカテゴリー構造を取得する方法)とここ(カテゴリ名、投稿リスト、とか)がすごく参考になりました。

WordPressが勝手に<p>タグでコンテンツをくくってしまうのが嫌なことがよくあります。(例えば、<div>でくくってる外側に<p>を付けるなど)
 
こういう、嫌になることが多いときは、Disable wpautopというプラグインを入れていたわけですが、これを入れると確かに<p>タグは付かないのですが、改行も全然入らなくなります。(プラグイン自体はたったこれだけ)

remove_filter ('the_content',  'wpautop');
remove_filter ('comment_text', 'wpautop');

 
自分でやるときは、<br>を付ければいいだけなので別にどうってことはないのですが、他人に使ってもらう環境だとそういうわけにはいかず、どうすべぇかなぁと思っていたところ、ちょうどいいプラグインがありました。
 
WordPress 改行プラグインがそれです。
これを入れて、brBrbr.phpの<p>を含んでいる 22,23,27行目をコメントアウトすれば、改行が入る上、<p>タグが付かなくなります。

//	$brbr = preg_replace('|<blockquote>]*)&gt;|i', "</p>\n<blockquote><p>", $brbr);
//	$brbr = str_replace('</blockquote>', "</p></blockquote>\n<p>", $brbr);
//	$brbr="<p>\n".$brbr."</p>\n";

 
ビジュアルリッチエディタを使う場合は、これに加えて、wp-admin/js/editor.js、wp-includes/formatting.php を入れ替えればいいということなんですが、MUの環境だと他のサイトに影響がでてしまうので、これはやめておきました。
空行が欲しければ、全角スペースを行頭に入れてもらえばいいしね。
ありがとうございました。

&lt;div id=&quot;footer&quot; class=&quot;footer_"&gt;

こういう風にして、ページごとにフッターの文字色や背景を CSSで変えるという Tipsがあるんだけど、ページ・タイトルが空白を含んでいたり、日本語だったりするとちょっと嫌。ま、自分で作るんだから気をつければいいと言っちゃそれまでなんだけど。

&lt;div id=&quot;footer&quot; class=&quot;footer_post_name);  ?&gt;" &gt;

こんな風にすると、スラッグが使えてハッピーです。”how to order”は”how-to-order”にしてくれまっせ。
 
あと、スラッグとはまったく関係ありませんが、TABLEの枠線の間隔をゼロにする CSSをすぐ忘れてしまうのでメモ。(もちろん、cellpadding=”0″ cellspacing=”0″ でやってOKですが)

table { border-collapse:collapse; }
th,td { padding:0; }