2008年7月31日木曜日

WordPressで表示中のカテゴリーに属した投稿一覧を表示するコード

カテゴリーIDが1,3,4の場合。
(忘れそうなので個人的なメモです。ご利用は自己の責任で。)

<?php if (in_category('1')): ?>
<p class="module_title"><a href="<?php echo get_category_link('1'); ?>">
<?php echo get_catname('1'); ?>
</a>
</p>
<ul id="get-posts">
<?php
$lastposts = get_posts('numberposts=10&category=1');
foreach($lastposts as $post) :
setup_postdata($post);
?>
<li><a href="<?php the_permalink(); ?>" id="post-<?php the_ID(); ?>"><?php the_title(); ?></a>
</li>
<?php endforeach; ?>
</ul>
<?php elseif (in_category('3')): ?>
<p class="module_title"><a href="<?php echo get_category_link('3'); ?>">
<?php echo get_catname('3'); ?>
</a>
</p>
<ul id="get-posts">
<?php
$lastposts = get_posts('numberposts=10&category=3');
foreach($lastposts as $post) :
setup_postdata($post);
?>
<li><a href="<?php the_permalink(); ?>" id="post-<?php the_ID(); ?>"><?php the_title(); ?></a>
</li>
<?php endforeach; ?>
</ul>
<?php elseif (in_category('4')): ?>
<p class="module_title"><a href="<?php echo get_category_link('4'); ?>">
<?php echo get_catname('4'); ?>
</a>
</p>
<ul id="get-posts">
<?php
$lastposts = get_posts('numberposts=10&category=4');
foreach($lastposts as $post) :
setup_postdata($post);
?>
<li><a href="<?php the_permalink(); ?>" id="post-<?php the_ID(); ?>"><?php the_title(); ?></a>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>

2008年7月8日火曜日

WordPressのパーマリンク構造をスッキリさせる


WordPressのURLは、デフォルトだと
http://www.example.com/?p=123
のように、「?」や「=」が含まれていて、個人的には好きではない。ブログならともかくCMSならパーマリンク構造にも気を使いたいもの。
そこで、オプションで用意されている次のような設定を使ってみたりする。
日付と投稿名 : http://www.example.com/2008/07/08/sample-post/
月と投稿名 : http://www.example.com/2008/07/sample-post/
数字ベース : http://www.example.com/archives/123
さらには、カテゴリに含まれる投稿のパーマリンクにも気を使ってみると、カテゴリー名の次にファイル名が表示されるほうが、すっきりとして気持ちがいいはず。
http://www.example.com/information/123/
http://www.example.com/information/sample-post/
その方法は、次のようなカスタム構造を指定することで可能だ。
/%category%/%post_id%/
/%category%/%postname%/
さて次に、カテゴリートップのURLは、デフォルトでは、
http://www.example.com/category/information/
などと、これまた長くて余計だ。
カテゴリーベースの設定で、文字列は変更できるが、空白にしたところで、上記デフォルトが適用される。
そこで、Top Level Categories というプラグインを使ってみると、有効化するだけでなにも無しの設定が可能となる。
http://www.example.com/information/
こんな感じで、とてもスッキリする。



2008年7月3日木曜日

MovableTypeのタグ機能で日本語がうまく使えない

MovableTypeのタグ機能を使っていて、日本語のタグがうまく使えないということはないだろうか。私がこれに気がついたのは MovableType4.1でとあるサイトを制作していて、記事に日本語でタグを入力し、さらに次の記事で同じタグを入力した時だ。本来なら同じタグなので1つのタグに2つの記事が存在する形となるはずが、ここでは同じ名前のタグが2つ並んでいる。英語では本来の機能を果たすのに、日本語では使えない。 という現象。

よく調べてみたら、MySQLバージョン5での文字コードが原因だった。MovableTypeはUTF-8で作っていたのに、MySQLはEUC-JPだった。ちなみにこれはCORESERVERでの話。CORESERVERではいくつものMySQLを作成できるが作る際に文字コードを設定する。これをなにげなく標準のEUC-JPでいくと一見問題 なくMovableTypeが動作する。少なくとも私はこの日本語タグが使えない事以外は気がつかなかった。これまでのMySQL4までなら、EUC-JPしか選択できなかったので、遅ればせながら最近になってようやく気がついた。