投稿にHighlight
という名前のカスタム分類法を割り当て、Featured
という名前の用語を追加しました。
私が投稿を特集したいときはいつでも、私は単にそれを特集に割り当てます。
各作者に、おすすめの投稿の合計数を表示します。
そのため、関数the_author_posts()
は総投稿数を表示します。著者に特集された総投稿数を表示したい。
これどうやってするの?
/**
* 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
引数をハードコードし、他の場所で引数なしでそれを呼び出すことができます。