バックエンドの編集画面の後ろにある数字を隠す/削除する必要があります。
全て(30)公開済み(22)ドラフト(5)保留中(2)ゴミ(1)
私はマルチ著者ブログを運営しており、各著者は自分の投稿にアクセスできるだけなので、すべての著者の累積情報を公開したくはありません。
次のコードではビューは完全に設定解除されていますが、機能全体を削除したくはありません。
function remove__views( $views ) {
unset($views['all']);
unset($views['publish']);
unset($views['trash']);
return $views;
}
add_action( 'views_edit-post', 'remove_views' );
add_action( 'views_edit-movie', 'remove_views' );
誰かがアイデアを持っていますか、どうすれば編集画面の後ろの数字を隠す/削除することができますか - せいぜい - 各著者に関連する数字だけを表示することができますか?
残念ながら、これを実行するための「きれいな」方法はありません(つまり、文字列の置換や大きな機能の塊の書き換えを使用しないで)。だから、 preg_replace
...に頼る.
リンクをフィルタ処理する必要があります。適切なフィルタが既に見つかっていることを確認してください。ビューをループして正規表現を使用して、投稿数を含む要素を削除できます。投稿にこれを実装するには、次のようなものが必要です。
add_filter( 'views_edit-post', 'wpse149143_edit_posts_views' );
function wpse149143_edit_posts_views( $views ) {
foreach ( $views as $index => $view ) {
$views[ $index ] = preg_replace( '/ <span class="count">\([0-9]+\)<\/span>/', '', $view );
}
return $views;
}
今日も同じ問題がありました。かなり良い解決策はおそらく明白ではありませんが、不可能でもありません。
これは、各作者に関連する数だけを表示するために使用するコードです。他のユーザーの投稿を編集する権限を持つユーザーには、引き続きフルカウントが表示されます。
add_filter('wp_count_posts', 'wpse149143_wp_count_posts', 10, 3);
/**
* Modify returned post counts by status for the current post type.
* Only retrieve counts of own items for users without rights to 'edit_others_posts'
*
* @since 26 June 2014
* @version 26 June 2014
* @author W. van Dam
*
* @notes Based on wp_count_posts (wp-includes/posts.php)
*
* @param object $counts An object containing the current post_type's post
* counts by status.
* @param string $type Post type.
* @param string $perm The permission to determine if the posts are 'readable'
* by the current user.
*
* @return object Number of posts for each status
*/
function wpse149143_wp_count_posts( $counts, $type, $perm ) {
global $wpdb;
// We only want to modify the counts shown in admin and depending on $perm being 'readable'
if ( ! is_admin() || 'readable' !== $perm ) {
return $counts;
}
// Only modify the counts if the user is not allowed to edit the posts of others
$post_type_object = get_post_type_object($type);
if (current_user_can( $post_type_object->cap->edit_others_posts ) ) {
return $counts;
}
$query = "SELECT post_status, COUNT( * ) AS num_posts FROM {$wpdb->posts} WHERE post_type = %s AND (post_author = %d) GROUP BY post_status";
$results = (array) $wpdb->get_results( $wpdb->prepare( $query, $type, get_current_user_id() ), ARRAY_A );
$counts = array_fill_keys( get_post_stati(), 0 );
foreach ( $results as $row ) {
$counts[ $row['post_status'] ] = $row['num_posts'];
}
return (object) $counts;
}
私は最も簡単な方法はCSSでそれらを隠すことだと思います、あなたはこのような何かを試すことができます:
add_action( 'admin_head', 'wpse145565_hide_post_count' );
function wpse145565_hide_post_count() {
$css = '<style>';
$css .= '.subsubsub a .count { display: none; }';
$css .= '</style>';
echo $css;
}
基本的に、この関数はadminセクションの先頭にスタイルタグを追加して、テキストカウントのdisplay
プロパティをnone
として設定します。