web-dev-qa-db-ja.com

コメントの返信用のログインリンクを削除または置換する方法

wp-includes/comments-template.php内の関数get_comment_reply_link()を編集する必要があります。私が本当にやりたいのは、「返信するためにログイン」というテキストをログアウトしたユーザーのためのすべてのコメントに入れることだけです。どうすればこれを正しい方法で行うことができますか?これが機能です。

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);
}
3
Pollux Khafra

あなたは上のコメント返信リンクのために出力をフィルタリングすることができます…それを待ってください! …'comment_reply_link'。コア関数と同じチェックをしますが、あなたの場合は何か他のものを返します。

<?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;
    }
}
4
fuxia