いまいち最終形をどうしたいのかがわからないのですが、query_posts を使うとかはどうですか?
wp_get_archives() にパラメータを渡す方法で特定のカテゴリーを除外することは、残念ながら出来ません。ただ、この実装そのものをあきらめてしまう前に、 kvex さんのアドバイスの通り、 query_posts() を使用する方法を試してみることをおすすめしたいです。プラグインを使いたくないのであれば特に、ご自分で WordPress ループを作成するのが最適解だと思います。
以下簡単な例ですが参考になさってください。
<?php // カテゴリーID 1,2,3 を除外した最新 10 件のクエリを発行
query_posts( array(
'category__not_in' => array( 1, 2, 3 ),
'showposts' => 10, ) );
if ( have_posts() ) : ?>
<ul>
<?php // WordPress ループ
while ( have_posts() ) :
the_post();
$url = apply_filters( 'the_permalink', get_permalink() );
$text = apply_filters( 'the_title', get_the_title() );
// wp_get_archives() と同じリスト形式にする
echo get_archives_link( $url, $text, 'html' );
endwhile; ?>
</ul>
<?php endif;
// 変更したクエリを元に戻す
wp_reset_query(); ?>
関連:
kvex様、mizube様、ご回答をありがとうございました。
>kvex様
いまいち最終形をどうしたいのかがわからないのですが、
はい、実は通常の投稿記事とは別にブログ運営日記というブログの運営に携わる話題だけのコーナーを設けようと思いまして両者を区別したかったものですから運営日記の記事はquery_posts()を使いトップページではなくAboutのページに掲載するように設定ました。カテゴリーリストも運営日記のカテゴリーだけは外したかったので wp_list_categories()タグでexcludeパラメータをわたして非表示にできました。同じく最新記事リストも通常記事のリストと運営日記のリストは切り分けたかったので wp_get_archives() タグ内でカテゴリーリストのように簡単に除外できないかと考えたのですがmizube様の仰るように
wp_get_archives() にパラメータを渡す方法で特定のカテゴリーを除外することは、残念ながら出来ません。
できないことをやろうとしたものですから行き詰まってしまいました。途中query_posts()を使って試行錯誤してみたのですが自身のスキル不足から上手く記述できずに挫折していました。検索で引っ掛かった事例でプラグイン Advanced Category Excluder を使用すれば簡単にできますとの情報も得たのですが特定の記事タイトルだけ記事リスト表示から除外したいというだけのことでしたのでプラグインを使用してまでそれに拘ることもないですし最後にこちらのフォーラムで質問をしてみて良い方法がご指南いただければと思いました。
>mizube様
解り易い例題をありがとうございます。おかげさまで最新記事リストから特定カテゴリーの記事タイトルのみ除外をすることができました。自分のレベルが低くこの質問内容に限らずテンプレートタグの設定をするのに WordPress Codex を見ながらでも上手く記述することができないこともしばしばでこのたびのmizube様に提示していただいたような例題の形は本当にありがたく助かります。
長くなってしまいましたがお二人には感謝をしております。
ありがとうございました。