Erweitern Sie das WordPress 3.8 Site Activity Dashboard-Widget um weitere Kommentare

7

Das neue Widget für das Site Activity-Dashboard zeigt standardmäßig 5 Kommentare an. Ich möchte 10 zeigen.

Ich kann den Code im Kern sehen, in /wp-admin/includes/dashboard.phpdem er die Funktion aufruft wp_dashboard_site_activityund verwendet wp_dashboard_recent_comments ( $total_items = 5 ). Aber ich kenne die Syntax nicht, um diese Funktion anzuschließen und zu aktualisieren.

Ich weiß, wie man ein benutzerdefiniertes Funktions-Plugin erstellt und bearbeitet functions.php. Ich bin mir nur nicht sicher, welche Syntax und / oder welcher Hook verwendet werden soll.

Jede Hilfe wird sehr geschätzt. Vielen Dank.

Dave Warfel
quelle

Antworten:

8

Anscheinend gibt es (noch) keinen Filter dafür, aber Sie können die Registrierung des Standardaktivitäts-Widgets aufheben und (innerhalb Ihrer Funktionen oder noch besser in Ihrem Plugin, wie von Dave Warfel empfohlen) ein ähnliches Aktivitäts-Widget mit Ihren benutzerdefinierten Einstellungen registrieren:

// 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>';

}
Sven
quelle
1
Getestet und hat super funktioniert. Ich würde jedoch empfehlen, diesen Code in einem benutzerdefinierten Funktions-Plugin zu behalten, da er sich auf den wp-admin bezieht und nicht themenspezifisch ist.
Dave Warfel
Guter Punkt! Ich habe es der Antwort hinzugefügt :)
Sven