web-dev-qa-db-ja.com

プログラムによるメニューへの投稿数の追加(Nav)

私はこれにかなり困惑しています。

あまりクエリに煩わされることなく、投稿のカテゴリにリンクし、新しい投稿がいくつあるかを括弧内に表示するメニューを作成するためにどのような道をたどるのかと思いました。

例:

ニュース(5新しい)
記事(8件)

...など.

何百万ものクエリを実行せずにこれを達成するための最も効率的な方法は何ですか?

3
user1915665

WordPressのget_categories()関数はカテゴリオブジェクトの配列を返します。各カテゴリオブジェクトには、そのカテゴリ内の投稿数に対する "count"プロパティがあります。だからこのようなものはあなたにカテゴリページへのリンクのリストを取得するでしょう:

$categories = get_categories();

$markup = '<ul>';
foreach( $categories as $category ) {
   $catName = $category->category_nicename;
   $count   = $category->count;
   $url     = get_category_link( $category->cat_ID );

   $markup .= '<li>';
     $markup .= "<a href=\"{$url}\">{$catName} ({$count})</a>";
   $markup .= '</li>';
}
$markup .= '</ul>';

それはあなたが単一のクエリを使用してカウントを表示することを可能にするでしょう。 get_categories()の代わりにもっと複雑なカスタムクエリを使用して「新しい」投稿の数を見つける方法はあると確信していますが、試すのではなく、カテゴリごとに別のクエリを作成するための余分なオーバーヘッドがあるでしょう1回のクエリですべて実行できます。私を怠け者と呼んでください。

1
Matt Dietsche

wp_list_categories を呼び出し、パラメータ'show_count'=> 1を追加すると、各カテゴリ内の投稿数が括弧内に返されます。

日付評価を取得することに関しては、WP_Query日付パラメータ を使用することをお勧めします。

0
Lea Cohen