はじめる人のびぎねっと。

プライバシーポリシー

びぎねっとブログ

WordPressのget_postsの仕様が変わっていたっぽい

別のところのWordPressで、ある親ページ中の最新子ページの一覧を表示する、という事をしていたのですが、3系にしてからURLの取得が正しくできなくなっていました。
調べたところ、setup_postdata()というのができていたようで、以前よりもすっきりとしたコードでやりたいことが実現できるようになりました。
$posts = get_posts('post_parent=1&orderby=date&order=DEST&post_type=page&nopaging=no');
$cnt = 0;
foreach ($posts as $post) {
setup_postdata($post);
?>
<dt><?php the_date(); ?></dt><dd><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></dd>
<?php
if ($cnt++ >= 4) { break; }
}

ちなみに以前のはこちら。preg_replaceで頑張ってました。もしかすると、これを書いた当時でももっとスマートなやり方があったのかも知れませんが……。
foreach ($posts as $post) {
$date = preg_replace('/-/', '/', $post->post_date); $date = preg_replace('/:([0-9])+$/', '', $date);
$url = preg_replace('/\?page_id\=([0-9])+/', "release/".$post->
post_name, $post->guid);
print " <dt>$date</dt>\n";
print " <dd><a href=\"$url\">" . $post->post_title . "</
a></dd>\n";
}

このエントリーをはてなブックマークに追加
Comment & TrackBack(0) | 2010/12/01 14:48
 

このページのTOPへ

Powered by Wordpress