我需要修改评论中显示的链接(用户名),删除或更改。唯一的困难是需要为Genesis Framework完成。在comments.php中,我找到了:
do_action( 'genesis_before_comments' );
do_action( 'genesis_comments' );
do_action( 'genesis_after_comments' );
但我不知道如何修改'genesis_comments'的内容。
可能应该用:
add_action( 'genesis_comments' , 'comments' );
function comments()
{
//... here is the problem
}
答案 0 :(得分:2)
您可以使用与genesissnippets.com中列出的方法类似的方法。基本上您要删除genesis_default_list_comments
操作,并将其替换为您自己的操作:
remove_action( 'genesis_list_comments', 'genesis_default_list_comments' );
add_action( 'genesis_list_comments', 'my_list_comments' );
然后在my_list_comments
功能中,拨打您的评论回调函数。基本上我完全复制了genesis_default_list_comments函数,只将回调函数名改为我自己的名字:
function my_list_comments() {
$defaults = array(
'type' => 'comment',
'avatar_size' => 48,
'format' => 'html5',
'callback' => 'my_comment_callback', // <-- this is the change
);
$args = apply_filters( 'genesis_comment_list_args', $defaults );
wp_list_comments( $args );
}
然后在my_comment_callback
中更改评论输出。
function my_comment_callback( $comment, array $args, $depth ) {
$GLOBALS['comment'] = $comment; ?>
<li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
<?php do_action( 'genesis_before_comment' ); ?>
<div class="comment-header">
<div class="comment-author vcard">
<?php echo get_avatar( $comment, $args['avatar_size'] ); ?>
<?php /**** PUT YOUR CHANGES HERE... ****/ ?>
<?php printf( __( '<cite class="fn">%s</cite> <span class="says">%s:</span>', 'genesis' ), get_comment_author_link(), apply_filters( 'comment_author_says_text', __( 'says', 'genesis' ) ) ); ?>
</div>
<div class="comment-meta commentmetadata">
<?php /**** OR HERE! ****/ ?>
<a href="<?php echo esc_url( get_comment_link( $comment->comment_ID ) ); ?>"><?php printf( __( '%1$s at %2$s', 'genesis' ), get_comment_date(), get_comment_time() ); ?></a>
<?php edit_comment_link( __( '(Edit)', 'genesis' ), '' ); ?>
</div>
</div>
<div class="comment-content">
<?php if ( ! $comment->comment_approved ) : ?>
<p class="alert"><?php echo apply_filters( 'genesis_comment_awaiting_moderation', __( 'Your comment is awaiting moderation.', 'genesis' ) ); ?></p>
<?php endif; ?>
<?php comment_text(); ?>
</div>
<div class="reply">
<?php comment_reply_link( array_merge( $args, array( 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
</div>
<?php do_action( 'genesis_after_comment' );
//* No ending </li> tag because of comment threading
}