修改Genesis主题注释显示

时间:2013-03-13 19:01:02

标签: php wordpress frameworks comments

我需要修改评论中显示的链接(用户名),删除或更改。唯一的困难是需要为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
}

1 个答案:

答案 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

}