ループ内のthe_tagsが反映されない

今まで特定カテゴリのループ処理を

<?php
$myposts = get_posts("numberposts=20&category=24&exclude=68,73");
foreach($myposts as $post) : ?>
(ループ内処理)
<?php endforeach; ?>

としていた。
理由としては同カテゴリ内でも表示させたくない記事があって、excludeが使いたかっただけなんだけども。
けれど、get_posts()を使うとthe_tagsの中身が表示されないことに今頃気付いたので、以下のように書き直した。

<?php query_posts("posts_per_page=20&cat=24"); ?>
<?php
if(have_posts()): while(have_posts()): the_post();
if($post->ID != 68 && $post->ID != 73) { ?>
(ループ内処理)
<?php } endwhile;endif; ?>

これで正常に表示。
ガチでPHPタグを書かなくてももっと簡単な方法があるのかもしれないけれど、とりあえずは期待通りの動きをしているからまあいいや。