web-dev-qa-db-ja.com

カスタム分類用語に割り当てられた投稿の合計数の著者の数を表示します

投稿にHighlightという名前のカスタム分類法を割り当て、Featuredという名前の用語を追加しました。

私が投稿を特集したいときはいつでも、私は単にそれを特集に割り当てます。

各作者に、おすすめの投稿の合計数を表示します。

そのため、関数the_author_posts()は総投稿数を表示します。著者に特集された総投稿数を表示したい。

これどうやってするの?

2
Jocob
/**
 * Get the author post count for a tax query.
 *
 * @link    http://wordpress.stackexchange.com/q/159160/1685
 *
 * @param   array   $tax_query
 * @return  int
 */
function wpse_159160_get_author_posts_by_tax( $tax_query ) {
    global $wpdb;

    $where = get_posts_by_author_sql( 'post', true, get_post()->post_author );

    $tax_query = new WP_Tax_Query( $tax_query );
    $sql = $tax_query->get_sql( $wpdb->posts, 'ID' );

    return ( int ) $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts {$sql['join']} $where {$sql['where']}" );
}

そして使用中:

$count = wpse_159160_get_author_posts_by_tax(
    array(
        array(
            'taxonomy' => 'highlight',
            'terms'    => 'featured',
            'field'    => 'slug',
        )
    )
);

echo "$count Featured Posts";

もしあなたがその関数(より新しいテンプレートコード)でもっと制御したくないのであれば、関数の中で$tax_query引数をハードコードし、他の場所で引数なしでそれを呼び出すことができます。

1
TheDeadMedic