La modificación de los contenidos de administración de la barra lateral para mostrar mensajes en espera indicador

wordpress.stackexchange https://wordpress.stackexchange.com/questions/3920

  •  16-10-2019
  •  | 
  •  

Pregunta

he estado tratando de obtener un recuento en espera de que aparezca en la barra lateral de administración, para los puestos pendientes, como la pequeña burbuja que aparece por la espera de comentarios:

Offtopic : ¿Soy el único que piensa que esto debe ser el comportamiento de la base? ¿Dónde debería sugerir esta característica?

De todos modos, he encontrado este plugin , pero me di cuenta de que didn 't siempre funcionó. A veces aparece el notificador en las páginas u otro elemento.

El código se utiliza para añadir el número de pendientes es algo como esto:

$menu[5][0] .= " <span class='update-plugins count-$pending_count'><span class='plugin-count'>" . number_format_i18n($pending_count) . '</span></span>';

Por lo tanto, claramente el problema es la no modificable 5 allí, pero ¿cómo puede actualizarla por lo que siempre apunta a los mensajes?

Me alegraré de cometer este cambio en el plugin si conocemos la respuesta.

Gracias!

¿Fue útil?

Solución

@ign

Reemplazar la línea de código que envió con la siguiente ..

foreach( $menu as $menu_key => $menu_data ) :
    if( 'edit.php' != $menu_data[2] )
        continue;
    $menu[$menu_key][0] .= " <span class='update-plugins count-$pending_count'><span class='plugin-count'>" . number_format_i18n($pending_count) . '</span></span>';
endforeach;

.. que debe evitar la necesidad de conocer la clave específica .. (que me haga saber si hay algún problema) ..

Espero que ayude ..:)

Otros consejos

como una continuación de t31os' respuesta, aquí está el código completo es necesario (que combina el contenido del plug-in se ha mencionado con arreglo t31os'), con modificaciones en los tipos de correos personalizados mango, así:

add_filter( 'add_menu_classes', 'show_pending_number');
function show_pending_number( $menu ) {
    $type = "animals";
    $status = "pending";
    $num_posts = wp_count_posts( $type, 'readable' );
    $pending_count = 0;
    if ( !empty($num_posts->$status) )
        $pending_count = $num_posts->$status;

    // build string to match in $menu array
    if ($type == 'post') {
        $menu_str = 'edit.php';
    } else {
        $menu_str = 'edit.php?post_type=' . $type;
    }

    // loop through $menu items, find match, add indicator
    foreach( $menu as $menu_key => $menu_data ) {
        if( $menu_str != $menu_data[2] )
            continue;
        $menu[$menu_key][0] .= " <span class='update-plugins count-$pending_count'><span class='plugin-count'>" . number_format_i18n($pending_count) . '</span></span>';
    }
    return $menu;
}

colocar esto en functions.php, sin necesidad de que el plug-in.

I hizo una ligera alteración al mensaje de somática que permite múltiples tipos de mensaje:

// Add pending numbers to post types on admin menu
function show_pending_number($menu) {    
    $types = array("post", "page", "custom-post-type");
    $status = "pending";
    foreach($types as $type) {
        $num_posts = wp_count_posts($type, 'readable');
        $pending_count = 0;
        if (!empty($num_posts->$status)) $pending_count = $num_posts->$status;

        if ($type == 'post') {
            $menu_str = 'edit.php';
        } else {
            $menu_str = 'edit.php?post_type=' . $type;
        }

        foreach( $menu as $menu_key => $menu_data ) {
            if( $menu_str != $menu_data[2] )
                continue;
            $menu[$menu_key][0] .= " <span class='update-plugins count-$pending_count'><span class='plugin-count'>" . number_format_i18n($pending_count) . '</span></span>';
            }
        }
    return $menu;
}
add_filter('add_menu_classes', 'show_pending_number');
Licenciado bajo: CC-BY-SA con atribución
scroll top