Как сделать ссылку на сайт автора комментария через span (Wordpress)?

12 3
S
На сайте с 14.10.2012
Offline
31
3044

Всем привет!

Собственно, вопрос в названии: как сделать ссылку на сайт автора комментария через span на Wordpress?

Код следующий (я так понимаю, менять нужно в первой функции + в js?). На всякий случай, выкладываю весь wp-list-comments.php (WP тема - sahifa):

<?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"><?php printf( '%1$s в %2$s', get_comment_date(), get_comment_time() ); ?><?php edit_comment_link( 'Редактировать', ' ' ); ?></div><!-- .comment-meta .commentmetadata -->

</div>

<div class="clear"></div>

<div class="comment-content">

<?php if ( $comment->comment_approved == '0' && get_comment_meta($comment->comment_ID, '_wp_auto_approved', true) == 0 ) : ?>

<em class="comment-awaiting-moderation">Ваш комментарий ожидает модерации.</em>

<br />

<?php endif; ?>

<?php comment_text(); ?>

</div>

<div class="reply"><?php printf('<span style="cursor:pointer; text-decoration: underline;" class="comment-reply-link" onclick="return addComment.moveForm(\'comment-%s\', \'%s\', \'respond\', \'%s\')">Ответить</span>',$comment->comment_ID,$comment->comment_ID,$comment->comment_post_ID); ?></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( 'Редактировать', ' ' ); ?></p>

<?php

}

?>

Буду очень благодарна за помощь.

ДП
На сайте с 23.11.2009
Offline
203
#1

Вот в этой строчке <?php printf( __( '%s ', 'tie' ), sprintf( '<cite class="fn">%s</cite>', get_comment_author_link() ) ); ?>

замена <cite> на <span> не прокатывает?

S
На сайте с 14.10.2012
Offline
31
#2
Дикий пионер:
Вот в этой строчке <?php printf( __( '%s ', 'tie' ), sprintf( '<cite class="fn">%s</cite>', get_comment_author_link() ) ); ?>
замена <cite> на <span> не прокатывает?

Неа, не прокатило:(

дани мапов
На сайте с 06.09.2012
Offline
204
#3

Заменить get_comment_author_link() на


preg_replace('~<a.+href="(https?://.+?)"[^>]*>(.+)</a>~', '<span class="link" data-link="$1">$2</span>', get_comment_author_link())

CSS


span.link:hover {cursor:pointer;}

Javascript


$("span.link").click(function() {
var url = $(this).attr("data-link");
window.location.href = url;
});
Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
S
На сайте с 14.10.2012
Offline
31
#4

Спасибо!

Вставила, но почему-то выдает ошибку в строке из первого кода... пытаюсь отладить.

Апдейт: нашла ошибку, просто лишний знак ";"

T
На сайте с 18.11.2013
Offline
50
#5

У меня по выше описанному способу сделать не получилось. Пошла другим путем, но опять тупик 😡

Работаю на движке Wordpress. Хочу сделать ссылки авторов комментариев закрытыми, через тег <span>.

Нашла в comment-template.php строку, которая выводит ссылку автора коммента -

<a href='$url' rel='external nofollow' class='url'>$author</a>,

изменила ее на <span class='hidden-link' data-link='$url' onclick='GoTo( '$url' )'>$author</span>.

В footer.php прописала скрипт, который обрабатывает ссылку -

<script>$('.hidden-link').click(function hidden(){window.open($(this).data('link'));return false;});</script>

<script type= "text/javascript">function GoTo(link){window.open(link.replace("_","http://"));}</script>

Прописала стили в Css. На сайте этот скрипт работает (В записях или других в других страницах), а в блоке комментариев ссылка автора не работает ( невозможен по ней переход).

В чем может быть ошибка, подскажите пожалуйста?

S
На сайте с 14.10.2012
Offline
31
#6

Ага, и у меня не прокатило предыдущим способом. Ошибок не выдает, но и ничего не меняется!

Jor
На сайте с 23.06.2012
Offline
42
Jor
#7

Замените это:

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

На это:

<?php printf( __( '%s ', 'tie' ), sprintf( '<cite class="fn"><span class="link" data-link="%s">'.get_comment_author().'</span></cite>', get_comment_author_url() ) ); ?>

JS:

$('span[data-link^="http"]').click(function() {
window.location.href = $(this).attr('data-link');
});

CSS:


span[data-link*="http"] {
cursor: pointer;
}

---

Хотя <span> тут лишний, можно к city привязать ссылку.

T
На сайте с 18.11.2013
Offline
50
#8

Jor

Спасибо за ответ, а если у меня нет этой строки:

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

А есть только такая строка : <?php printf( __( '<cite class="fn">%s</cite> <span class="says">says:</span>' ), get_comment_author_link() ); ?>

Нашла ее в файле wp-includes /comment-template.php

В этом случае куда надо вписывать JS?

Jor
На сайте с 23.06.2012
Offline
42
Jor
#9

Tanychka, мой ответ был под шаблон stunary, замените строку на эту:

<?php printf( __( '<cite class="fn"><span class="link" data-link="%s">'.get_comment_author().'</span></cite> <span class="says">says:</span>' ), get_comment_author_url() ); ?>

JS код вставьте в один из подключаемых на сайте JS-скриптов.

Было бы лучше показать url сайта.

T
На сайте с 18.11.2013
Offline
50
#10

Jor

Вот сайтик - не пойму, что я делаю не так? Почему у меня не выходит, блин, печалька...

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий