Kommentare und Fediverse-Reaktionen in WordPress zählen

Ich woll­te für die­se Word­Press-Sei­te ein­fach eine Zahl aus­ge­ben haben, die Blog­kom­men­ta­re und Reak­tio­nen aus dem Fedi­ver­se zusam­men­fasst. So geht’s:

/**
 * Gesamte Interaktionen: Kommentare + Fediverse-Reaktionen
 *
 * @param int $post_id Post-ID (0 = aktueller Post)
 * @return int Gesamtzahl
 */
function get_total_interactions( $post_id = 0 ) {
    if ( ! $post_id ) {
        $post_id = get_the_ID();
    }

    if ( ! $post_id ) {
        return 0;
    }

    // 1. Alle Kommentare (inkl. Fediverse-Replies)
    $comment_count = (int) get_comments_number( $post_id );

    // 2. Fediverse-Reaktionen (Likes, Reposts etc.) – über das ActivityPub-Plugin
    $reaction_count = 0;

    if ( class_exists( 'Activitypub\Comment' ) ) {
        $comment_types = Activitypub\Comment::get_comment_types();

        foreach ( array_keys( $comment_types ) as $type ) {
            // Zählt nur Top-Level Reaktionen (keine Replies darauf)
            $reactions = get_comments( array(
                'post_id' => $post_id,
                'type'    => $type,
                'status'  => 'approve',
                'parent'  => 0,           // nur direkte Reaktionen
                'count'   => true,        // nur zählen, keine Objekte laden
            ) );

            $reaction_count += (int) $reactions;
        }
    }

    return $comment_count + $reaction_count;
}

Und zum Ein­bau­en in z.B. eine Sei­te:


<?php
$total = get_total_interactions();
if ( $total > 0 ) :
?>
    <div class="total-interactions">
        <strong><?php echo number_format_i18n( $total ); ?></strong>
        Interaktionen
    </div>
<?php endif; ?>

Moin

Jedes mei­ner Blogs ist auch im Fedi­ver­se und dar­über könn­te man auch klei­ne Bei­trä­ge pos­ten, was aber irgend­wann auch zuviel wird. Da ich eh schon unter mei­ner Nach­na­men­do­main eine Instanz habe lau­fen las­sen, habe ich die Sei­te, die jetzt mit Word­Press läuft, mal mehr wie einen Sozi­al­netz­werk­nut­zer­zu­gang aus­se­hen las­sen.

Jana über das Impos­ter Syn­drom bei ihr, ganz zau­ber­haft.

Andrea ver­brach­te einen Tag ohne ihr Han­dy. Was da nicht alles pas­sie­ren kann.

Und wäh­rend ich mir die Fra­ge stel­le: Fühlt man sich nicht auch etwas wegen sei­nes über­spru­deln­den Den­kens von ande­ren unan­ge­nehm ana­ly­siert? hole ich mir erst noch einen Kaf­fee.