@jazzman7

Как вставить логин пользователя при ответе на комментарий в wordpress?

Доброго времени суток. Хочу сделать так, что бы при нажатии на кнопку "ответить" в комментариях wordpress в textarea вставлялся логин, тому кому собственно отвечаешь. Сначала я час гуглил, потом написал сейчас на jquery код который в принципе делает все, что надо, но я не учел, что страница обновляется из-за перехода на ?replytocom=id#respond

Рассматриваю вариант сохранения textarea при обновление, но что-то не хочется такое городить, я уверен есть более логичные способы.
Выводы комментариев/формы стандартные
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
@jazzman7 Автор вопроса
Второй день отвечаю на свои же вопросы ))

В общем если у кого-то будет такой же вопрос, то можете применить мой вариант.
Я решил поменять форму ввода, на свою. За основу взял код представленный на wp-karma, что делаем:

1) В активной теме находим comments.php
2) Находим comment_form( $args);
3) Меняем на

$idau = intval($_GET['replytocom']);

	if($idau>0){ $loginau = get_comment_author($idau).', '; }

$defaults = [
	'fields'               => [
		'author' => '<p class="comment-form-author">
			
			<input id="author" name="author" type="text" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" placeholder="Имя" size="30" required />
		</p>',
		'email'  => '<p class="comment-form-email">
			
			<input id="email" name="email" type="email" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" placeholder="Email" size="30" aria-describedby="email-notes" required/>
		</p>',
		'url'    => '<p class="comment-form-url">
			<label for="url">' . __( 'Website' ) . '</label> 
			<input id="url" name="url" ' . ( $html5 ? 'type="url"' : 'type="text"' ) . ' value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" />
		</p>',
		'cookies' => '<p class="comment-form-cookies-consent">'.
			 sprintf( '<input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes"%s />', $consent ) .'
			 <label for="wp-comment-cookies-consent">'. __( 'Save my name, email, and website in this browser for the next time I comment.' ) .'</label>
		</p>',        
	],
	'comment_field'        => '<p class="comment-form-comment">
	
		<textarea id="comment" name="comment" cols="45" rows="8" placeholder="Комментарий" aria-required="true" required>' . esc_attr(  $loginau ) . '</textarea>
	</p>',
	'must_log_in'          => '<p class="must-log-in">' . 
		 sprintf( __( 'You must be <a href="%s">logged in</a> to post a comment.' ), wp_login_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '
	 </p>',
	'logged_in_as'         => '<p class="logged-in-as">' . 
		 sprintf( __( '<a href="%1$s" aria-label="Logged in as %2$s. Edit your profile.">Logged in as %2$s</a>. <a href="%3$s">Log out?</a>' ), get_edit_user_link(), $user_identity, wp_logout_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '
	 </p>',
	'comment_notes_before' => '<p class="comment-notes">
		<span id="email-notes">' . __( 'Your email address will not be published.' ) . '</span>'. 
		( $req ? $required_text : '' ) . '
	</p>',
	'comment_notes_after'  => '',
	'id_form'              => 'commentform',
	'id_submit'            => 'submit',
	'class_form'           => 'comment-form',
	'class_submit'         => 'submit',
	'name_submit'          => 'submit',
	'title_reply'          => __( 'Leave a Reply' ),
	'title_reply_to'       => __( 'Leave a Reply to %s' ),
	'title_reply_before'   => '<h3 id="reply-title" class="comment-reply-title">',
	'title_reply_after'    => '</h3>',
	'cancel_reply_before'  => ' <small>',
	'cancel_reply_after'   => '</small>',
	'cancel_reply_link'    => __( 'Cancel reply' ),
	'label_submit'         => __( 'Post Comment' ),
	'submit_button'        => '<input name="%1$s" type="submit" id="%2$s" class="%3$s" value="%4$s" />',
	'submit_field'         => '<p class="form-submit">%1$s %2$s</p>',
	'format'               => 'xhtml',
];

comment_form( $defaults );


Что происходит? Отслеживаем есть ли replytocom в url, если есть ловим id, вычисляем логин, подставляем в textarea. Еще я зачистил label и заменил их на placeholder, мне так больше нравится, но если нужны label источник я указал выше, смотрите там оригинал и ставьте обратно
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы