web-dev-qa-db-fra.com

Supprimer "un href" de wp_list_comments ()

Les commentaires de mon thème actuel sont affichés à l'aide du code suivant.

         <ol class="comment-list">
            <?php
                wp_list_comments( array(
                    'style'      => 'ol',
                    'short_ping' => true,
                ) );
            ?>
        </ol>

Je dois supprimer la partie "href". Je veux dire qu'ils ne devraient pas être liés au site Web de l'auteur de commentaires.

Je vérifie wp_list_comments() du codex, mais je ne trouve pas comment supprimer la partie <a href.

Au fond, la fonction utilise get_comment_author_link() pour afficher le nom de l'auteur. Cette fonction est filtrable. À l'intérieur de la fonction, il vérifie si l'auteur a une URL et encapsule le nom dans un lien, le cas échéant. Nous pouvons utiliser le filtre get_comment_author_link pour simplement sortir le nom et ignorer l'URL. C'est assez simple, puisque le rappel de ce filtre obtient le nom de l'auteur comme argument, il suffit donc de le passer tel quel:

function wpse_284352_author_link( $author_link, $author ) {
    return $author;
}
add_filter( 'get_comment_author_link', 'wpse_284352_author_link', 10, 2 );

EDIT: C’est encore plus simple, l’URL a son propre filtre, ce qui signifie qu’elle peut être filtrée avec l’une des fonctions intégrées de WordPress en une ligne:

add_filter( 'get_comment_author_url', '__return_empty_string' );
2
Jacob Peattie

Vous pouvez créer votre propre marcheur et personnaliser sa structure. Notez que l’utilisation d’un filtre affectera "tout" instances de wp_list_comments(), il vous est donc conseillé de personnaliser vos commentaires à l’aide d’un lecteur. Voici un exemple de base:

function my_comment( $comment, $args, $depth ) {
    $GLOBALS['comment'] = $comment; ?>
    <li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>">
        <div id="comment-<?php comment_ID(); ?>" class="comment-wrap">
            <div class="comment-head comment-author vcard"><?php
                echo get_avatar( $comment, 60 );
                if ( comments_open() ){
                    comment_reply_link( 
                        array_merge( 
                            $args, 
                            array( 
                                'depth' => $depth,
                                'max_depth' => $args['max_depth'], 
                                'reply_text' => __( 'Reply' ) 
                            ) 
                        ) 
                    );
                }?>
                <div class="comment-meta commentmetadata">
                    <div class="comment-date"><?php
                        /* translators: 1: date, 2: time */
                        printf( __( '%1$s at %2$s' ),
                            get_comment_date(),
                            get_comment_time()
                        ); ?>
                    </div><?php
                    edit_comment_link( __( 'Edit' ), '', '' );?>
                </div>
            </div>
            <div class="comment-content comment-text"><?php
                if ( $comment->comment_approved == '0' ) { ?>
                    <em><?php _e( 'Your comment is awaiting moderation.'); ?></em><br /><?php
                }
                comment_text(); ?>
            </div>
        </div>
    <?php
}

Vous pouvez maintenant définir le rappel dans wp_list_comments():

wp_list_comments( 
    array( 
        'callback' => 'my_comment' ,
        'style'    => 'ol'
    ) 
);

Cela rendra les commentaires sans lien vers eux. Vous pouvez entièrement personnaliser les commentaires de sortie. Des informations complémentaires et des exemples complexes sont fournis dans la page codex .

0
Jack Johansson