このコードを使用して、すべてのカスタム投稿タイプを「At a Glance」ダッシュボードウィジェットに表示します。
add_action( 'dashboard_glance_items', 'cpad_at_glance_content_table_end' );
function cpad_at_glance_content_table_end() {
$args = array(
'public' => true,
'_builtin' => false,
);
$output = 'object';
$operator = 'and';
$post_types = get_post_types( $args, $output, $operator );
foreach ( $post_types as $post_type ) {
$num_posts = wp_count_posts( $post_type->name );
$num = number_format_i18n( $num_posts->publish );
$text = _n( $post_type->labels->singular_name, $post_type->labels->name, intval( $num_posts->publish ) );
if ( current_user_can( 'edit_posts' ) ) {
$output = '<a href="edit.php?post_type=' . $post_type->name . '">' . $num . ' ' . $text . '</a>';
echo '<li class="post-count ' . $post_type->name . '-count">' . $output . '</li>';
} else {
$output = '<span>' . $num . ' ' . $text . '</span>';
echo '<li class="post-count ' . $post_type->name . '-count">' . $output . '</li>';
}
}
}
現在ログインしている著者に属する投稿の数だけを表示する方法はありますか?
私はあなたが何をしているかと思います:
// The user is logged, retrieve the user id (this needs to go above your foreach)
$user_ID = get_current_user_id();
// Now we have got the user's id, we can pass it to the foreach of your function(this needs to go into your foreach:
echo '<li>Number of '.$post_type->name.' posts published by me: ' . count_user_posts( $user_ID , $post_type->name ).'</li>';
@ rudtekからの回答を修正しました。ここにコードを表示しています。基本的に、count_user_posts
関数はpost型に渡されるname
メソッドを必要としました。そうでなければ、出力は '0'でした。
add_action( 'dashboard_glance_items', 'cpad_at_glance_content_table_end' );
function cpad_at_glance_content_table_end() {
$args = array(
'public' => true,
'_builtin' => false,
);
$output = 'object';
$operator = 'and';
$post_types = get_post_types( $args, $output, $operator );
foreach ( $post_types as $post_type ) {
$user_ID = get_current_user_id();
$num_posts = count_user_posts( $user_ID , $post_type->name );
$text = _n( $post_type->labels->singular_name, $post_type->labels->name, intval( $num_posts->publish ) );
if ( current_user_can( 'edit_posts' ) ) {
$output = '<a href="edit.php?post_type=' . $post_type->name . '">' . $num_posts . ' ' . $text . '</a>';
echo '<li class="post-count ' . $post_type->name . '-count">' . $output . '</li>';
} else {
$output = '<span>' . $num_posts . ' ' . $text . '</span>';
echo '<li class="post-count ' . $post_type->name . '-count">' . $output . '</li>';
}
}
}