WordPress как на ладони

[решено] Как сделать, чтобы в заголовке комментария добавилось имя того, кому адресован комментарий

Свой вопрос я уже задавал на этой странице, потому прошу сильно не пинать за дубль - я изначально не сориентировался как лучше задать вопрос.

Теперь сам вопрос.

Дело в том, что несмотря на то, что в моём шаблоне нормально реализована древовидность комментариев, некоторые пользователи сайта прям требуют чтобы в дополнении была ещё и строчка "Пользователь" - ответил - "Пользователю". Вот на этом "ответил пользователю" я и застрял. Не знаю как реализовать в конкретном случае. Файлик, который отвечает за формирование комментов называется в моей теме wp_list_comments.php - и имеет следующее содержимое

<?php
function custom_comments( $comment, $args, $depth ) {
	$GLOBALS['comment'] = $comment ;
	?>
	<li id="comment-<?php comment_ID(); ?>">
		<div  <?php comment_class('comment-wrap'); ?> >
			<div class="comment-avatar"><?php echo get_avatar( $comment, 45 ); ?></div>
			<div class="author-comment">
				<?php printf( __( '%s ', 'tie' ), sprintf( '<cite class="fn">%s</cite>', get_comment_author_link() ) ); ?>
				<div class="comment-meta commentmetadata"><a href="<?php echo esc_url( get_comment_link( $comment->comment_ID ) ); ?>">   <?php printf( __( '%1$s at %2$s', 'tie' ), get_comment_date(),  get_comment_time() ); ?></a><?php edit_comment_link( __( '(Edit)', 'tie' ), ' ' ); ?></div><!-- .comment-meta .commentmetadata -->
			</div>
			<div class="clear"></div>
			<div class="comment-content">
				<?php if ( $comment->comment_approved == '0' ) : ?>
					<em class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.', 'tie' ); ?></em>
					<br />
				<?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><!-- .reply -->
		</div><!-- #comment-##  -->

	<?php
}

function custom_pings($comment, $args, $depth) {
	$GLOBALS['comment'] = $comment; ?>
	<li class="comment pingback">
		<p><?php _e( 'Pingback:', 'tie' ); ?> <?php comment_author_link(); ?><?php edit_comment_link( __( '(Edit)', 'tie' ), ' ' ); ?></p>
<?php    
}
?>

умом я понимаю, что нужный для реализации код надо добавить после

<?php printf( __( '%s ', 'tie' ), sprintf( '<cite class="fn">%s</cite>', get_comment_author_link() ) ); ?>

НО это, к сожалению, единственное, что я понимаю. Любые попытки сделать какую-то вразумительную конструкцию либо просто не работали, либо вызывали ошибку.

Подскажите, плиз, как реализовать искомое. Вся надежда на вас.

Заметки к вопросу:
Quatrix 7.5 лет назад

решено

0
Quatrix
7.5 лет назад
  • 0
    stepan2278 www.weblancer.net/users/stepanko/?affili...

    Добавим в Вашу функцию пару строчек.

    function custom_comments( $comment, $args, $depth ) {
    	$GLOBALS['comment'] = $comment ;
    	$author_comment_parent = '';
    	if ( $comment->comment_parent != 0 ) {
    		$comment_parent = get_comment( $comment->comment_parent );
    		$author_comment_parent = ' ответил на коммент автора: ' . $comment_parent->comment_author;
    	}
    	...

    Дальше в этом участке коде добавим наш текст:

    <?php printf( __( '%s ', 'tie' ), sprintf( '<cite>%s</cite>', get_comment_author_link() . $author_comment_parent ) ); ?>

    В итоге получится на фронтенде типа такого:
    Евгений ответил на коммент автора: Сергей

    Quatrix 7.5 лет назад

    Великолепно работает. Огромнейшее спасибо!

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация