从wp_list_Comments()中删除“a href”

时间:2017-10-30 作者:I am the Most Stupid Person

我当前的主题注释使用以下代码显示。

         <ol class="comment-list">
            <?php
                wp_list_comments( array(
                    \'style\'      => \'ol\',
                    \'short_ping\' => true,
                ) );
            ?>
        </ol>
我需要删除“a href”部分。我的意思是他们不应该链接到评论作者的网站。

我检查一下wp_list_comments() 来自codex,但我找不到如何删除<a href 部分

2 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

深入了解函数使用情况get_comment_author_link() 输出作者姓名。该函数是可过滤的。在函数内部,它检查作者是否有URL,并将名称包装在指向该URL的链接中(如果存在)。我们可以使用get_comment_author_link 筛选只输出名称,忽略URL。这非常简单,因为此过滤器的回调将作者名称作为其参数之一,所以我们只需将其原封不动地传递:

function wpse_284352_author_link( $author_link, $author ) {
    return $author;
}
add_filter( \'get_comment_author_link\', \'wpse_284352_author_link\', 10, 2 );
EDIT: 实际上更简单的是,URL有自己的过滤器,这意味着可以在一行中使用WordPress的内置函数进行过滤:

add_filter( \'get_comment_author_url\', \'__return_empty_string\' );

SO网友:Johansson

您可以创建自己的助行器并自定义其结构。请注意,使用筛选器将影响的“所有”实例wp_list_comments(), 因此,建议您使用助行器自定义您的评论。下面是一个基本示例:

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
}
现在可以在中定义回调wp_list_comments():

wp_list_comments( 
    array( 
        \'callback\' => \'my_comment\' ,
        \'style\'    => \'ol\'
    ) 
);
这将呈现没有链接到注释的注释。您可以完全自定义输出注释。更多信息和复杂示例见codex

结束