Как в admin bar WordPress вывести черновики, комментарии, отзывы WooCommerce и записи форума (Knowledge Base) и рядом указать количество неопубликованных?

Как в admin bar WordPress вывести черновики, комментарии, отзывы WooCommerce и записи форума (Knowledge Base) и рядом указать количество неопубликованных?
в файл functions.php добавим:


// Добавляем свои пункты в админ-бар
add_action( 'admin_bar_menu', 'true_add_admin_bar_link', 5225 );
function true_add_admin_bar_link( $wp_admin_bar ) {
    // === Подсчёт непроверенных комментариев ===
    $moderated_comments = 0;
    $comment_count = wp_count_comments();
    if ( isset( $comment_count->moderated ) ) {
        $moderated_comments = (int) $comment_count->moderated;
    }

    // === Подсчёт непроверенных отзывов (WooCommerce) ===
    $pending_reviews = 0;
    global $wpdb;
    if ( post_type_exists( 'product' ) ) {
        $pending_reviews = (int) $wpdb->get_var(
            $wpdb->prepare(
                "SELECT COUNT(*) FROM {$wpdb->comments} 
                 WHERE comment_approved = '0' 
                 AND comment_type = %s",
                'review'
            )
        );
    }

    // === Подсчёт черновиков типа 'knowledgebase' (ваш "форум") ===
    $kb_drafts_count = 0;
    $kb_drafts = wp_count_posts('knowledgebase');
    if ( isset( $kb_drafts->draft ) ) {
        $kb_drafts_count = (int) $kb_drafts->draft;
    }

    // === Подсчёт черновиков обычных записей (post) ===
    $post_drafts_count = 0;
    $post_counts = wp_count_posts('post');
    if ( isset( $post_counts->draft ) ) {
        $post_drafts_count = (int) $post_counts->draft;
    }

    // --- Черновики (обычные посты) с выводом количества ---
    $drafts_title = 'Черновики';
    if ( $post_drafts_count > 0 ) {
        $drafts_title .= ' <span class="awaiting-mod count-' . $post_drafts_count . '">' . $post_drafts_count . '</span>';
    }
    $wp_admin_bar->add_node( array(
        'id'    => 'mytestmenu2',
        'title' => $drafts_title,
        'href'  => admin_url( 'edit.php?post_status=draft&post_type=post' )
    ) );

 

    // --- Отзывы ---
    $reviews_title = 'Отзывы';
    if ( $pending_reviews > 0 ) {
        $reviews_title .= ' <span class="awaiting-mod count-' . $pending_reviews . '">' . $pending_reviews . '</span>';
    }
    $wp_admin_bar->add_node( array(
        'id'    => 'mytestmenu10',
        'title' => $reviews_title,
        'href'  => admin_url( 'edit.php?post_type=product&page=product-reviews' )
    ) );

    // --- комменты ---
    $comments_title = 'комменты';
    if ( $moderated_comments > 0 ) {
        $comments_title .= ' <span class="awaiting-mod count-' . $moderated_comments . '">' . $moderated_comments . '</span>';
    }
    $wp_admin_bar->add_node( array(
        'id'    => 'mytestmenu4',
        'title' => $comments_title,
        'href'  => admin_url( 'edit-comments.php' )
    ) );

    // --- ФОРУМ (черновики knowledgebase) — сразу после комментов ---
    $forum_title = 'Форум';
    if ( $kb_drafts_count > 0 ) {
        $forum_title .= ' <span class="awaiting-mod count-' . $kb_drafts_count . '">' . $kb_drafts_count . '</span>';
    }
    $wp_admin_bar->add_node( array(
        'id'    => 'mytestmenu_kb_forum',
        'title' => $forum_title,
        'href'  => admin_url( 'edit.php?post_status=draft&post_type=knowledgebase' )
    ) );

  
   
}
guest

Другие сообщения форума

Закрыть меню