如何删除或替换评论回复的登录链接?

时间:2012-05-16 作者:Pollux Khafra

我需要编辑函数get_comment_reply_link() 在里面wp-includes/comments-template.php. 我真正想做的就是去掉“登录回复”的文字,把每一条对注销用户的评论都放进去,这让我很不安。我怎样才能正确地做到这一点?下面是函数。

function get_comment_reply_link($args = array(), $comment = null, $post = null) {
global $user_ID;

$defaults = array(\'add_below\' => \'comment\', \'respond_id\' => \'respond\', \'reply_text\' => __(\'Reply\'),
    \'login_text\' => __(\'Log in to Reply\'), \'depth\' => 0, \'before\' => \'\', \'after\' => \'\');

$args = wp_parse_args($args, $defaults);

if ( 0 == $args[\'depth\'] || $args[\'max_depth\'] <= $args[\'depth\'] )
    return;

extract($args, EXTR_SKIP);

$comment = get_comment($comment);
if ( empty($post) )
    $post = $comment->comment_post_ID;
$post = get_post($post);

if ( !comments_open($post->ID) )
    return false;

$link = \'\';

if ( get_option(\'comment_registration\') && !$user_ID )
    $link = \'<a rel="nofollow" class="comment-reply-login" href="\' . esc_url( wp_login_url( get_permalink() ) ) . \'">\' . $login_text . \'</a>\';
else
    $link = "<a class=\'comment-reply-link\' href=\'" . esc_url( add_query_arg( \'replytocom\', $comment->comment_ID ) ) . "#" . $respond_id . "\' onclick=\'return addComment.moveForm(\\"$add_below-$comment->comment_ID\\", \\"$comment->comment_ID\\", \\"$respond_id\\", \\"$post->ID\\")\'>$reply_text</a>";
return apply_filters(\'comment_reply_link\', $before . $link . $after, $args, $comment, $post);
}

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

您可以在…wait it!…上筛选评论回复链接的输出…\'comment_reply_link\'. 只需执行与核心函数相同的检查,但返回其他内容(在您的情况下):nothing。

<?php # -*- coding: utf-8 -*-
/**
 * Plugin Name: T5 No Comment Log In Link
 * Plugin URI:  http://wordpress.stackexchange.com/q/52350/73
 * Description: Removes the log-in link for comment reply links.
 * Version:     2012.05.16
 * Author:      Thomas Scholz <[email protected]>
 * Author URI:  http://toscho.de
 * License:     MIT
 * License URI: http://www.opensource.org/licenses/mit-license.php
 */

if ( ! function_exists( \'t5_do_not_ask_for_comment_log_in\' ) )
{
    add_filter( \'comment_reply_link\', \'t5_do_not_ask_for_comment_log_in\' );

    /**
     * Replaces the log-in link with an empty string.
     *
     * @param  string $link
     * @return string
     */
    function t5_do_not_ask_for_comment_log_in( $link )
    {
        if ( empty ( $GLOBALS[\'user_ID\'] ) && get_option( \'comment_registration\' ) )
        {
            return \'\';
        }

        return $link;
    }
}

结束

相关推荐

WP_LIST_COMMENTS中的注释日期不起作用吗?

我正试图在wordpress网站上创建我的第一个评论列表和评论表单,但日期显示为%e %B %Y at %H:%M 而不是日期。看起来date format 无法识别。我只是编写了以下代码:<?php $args = array ( \'avatar_size\' => 48 ); wp_list_comments($args); ?> <?php comment_form(); ?>&#