web-dev-qa-db-fra.com

Étendre le widget Tableau de bord d'activité de site WordPress 3.8 pour inclure plus de commentaires

Le nouveau widget de tableau de bord Activité du site affiche par défaut 5 commentaires. Je voudrais montrer 10.

Je peux voir le code dans le noyau /wp-admin/includes/dashboard.php où il appelle la fonction wp_dashboard_site_activity et utilise wp_dashboard_recent_comments ( $total_items = 5 ). Mais je ne connais pas la syntaxe à utiliser dans cette fonction pour la mettre à jour.

Je sais comment créer un plugin de fonctionnalité personnalisée et modifier le functions.php; je ne suis tout simplement pas sûr de la syntaxe et/ou du hook à utiliser.

Toute aide est grandement appréciée. Merci.

7
Dave Warfel

On dirait qu’il n’ya pas encore de filtre pour cela, mais vous pouvez annuler l’inscription du widget d’activité par défaut et enregistrer (dans vos fonctions, voire mieux dans votre plug-in, comme le recommande Dave Warfel) un widget d’activité similaire avec vos paramètres personnalisés:

// unregister the default activity widget
add_action('wp_dashboard_setup', 'remove_dashboard_widgets' );
function remove_dashboard_widgets() {

    global $wp_meta_boxes;
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity']);

}

// register your custom activity widget
add_action('wp_dashboard_setup', 'add_custom_dashboard_activity' );
function add_custom_dashboard_activity() {
    wp_add_dashboard_widget('custom_dashboard_activity', 'Activity', 'custom_wp_dashboard_site_activity');
}

function custom_wp_dashboard_site_activity() {

    echo '<div id="activity-widget">';

    $future_posts = wp_dashboard_recent_posts( array(
        'display' => 2,
        'max'     => 5,
        'status'  => 'future',
        'order'   => 'ASC',
        'title'   => __( 'Publishing Soon' ),
        'id'      => 'future-posts',
    ) );

    $recent_posts = wp_dashboard_recent_posts( array(
        'display' => 2,
        'max'     => 5,
        'status'  => 'publish',
        'order'   => 'DESC',
        'title'   => __( 'Recently Published' ),
        'id'      => 'published-posts',
    ) );

    $recent_comments = wp_dashboard_recent_comments( 10 );

    if ( !$future_posts && !$recent_posts && !$recent_comments ) {
        echo '<div class="no-activity">';
        echo '<p class="smiley"></p>';
        echo '<p>' . __( 'No activity yet!' ) . '</p>';
        echo '</div>';
    }

    echo '</div>';

}
8
Sven