… zostawiając link na liście komentarzy pod wpisem?
Szukasz rozwiązania, które pozwoli wyłączyć/usunąć linki kierujące do stron autorów komentarzy na Twoim blogu lub stronie na WordPress?
Spis treści
Czemu usuwać linki autorów w bloku najnowszych komentarzy?
To prawda, w najnowszych WordPressach linki zewnętrzne w komentarzach są oznaczane przez atrybut rel o wartości „nofollow ugc” i o ile nie mam nic przeciwko takim linkom przy komentarzu na liście pod wpisem, o tyle w domyślnym widgetcie o nazwie „Najnowsze komentarze” (Recent comments) są one kompletną pomyłką (z punktu widzenia właściciela strony, która ten widget wyświetla).
Optymalizacja linkowania zewnętrznego jest bardzo istotną kwestią przy optymalizacji całego serwisu i nie powinniśmy ignorować tego typu linków, które siłą rzeczy zwykle są linkami site-wide – nie widzę powodu by wskazywać je robotom przy odwiedzinach każdego wpisu na naszym blogu/stronie/serwisie.
Jak usunąć linki autorów komentarzy?
Sposobów na rozwiązanie tego problemu jest wiele – na pewno znajdziecie różnego rodzaju wypasione wtyczki w widgetami komentarzy, które pozwolą wybrać czy linkujemy do autora czy też nie. Nie jestem jednak zwolennikiem rozwiązywania wszystkich potrzeb na WordPressie przy pomocy wtyczek – wszystko co można zrobić przy pomocy krótkiego, nie skomplikowanego kodu, należy moim zdaniem zrobić właśnie w ten sposób, aby nie potrzebnie nie obciążać strony.
Rozwiązaniem, na które ja ostatecznie się zdecydowałem było usunięcie linków jedynie z bloku „najnowszych komentarzy” w panelu bocznym. Linki są podstawą Internetu, nie widzę nic złego w tym, by autor merytorycznego komentarza na moim blogu zostawił do siebie link typu „nofollow” na liście komentarzy pod wpisem. Poniżej prezentuje jednak dwa kody, abyście samodzielnie zdecydowali z którego rozwiązania Wy skorzystacie.
Wybrany kod należy zamieścić w pliku functions.php w Waszym szablonie w WordPressie. Funkcja „get_comment_author_link” używana jest w systemowym pliku WordPressa w katalogu /wp-includes/, nie ma możliwości nadpisania go aby nie uległ zmianie przy aktualizacji, nie zaleca się też zmian w plikach systemowych, dlatego właśnie dodamy filtr na wskazaną funkcję.
Usunięcie linków autorów – wszystkie standardowe linki*
*korzystające z funkcji „get_comment_author_link” – czyli standardowo linki wyświetlane na liście komentarzy w pseudonimie/Imieniu i Nazwisku autora.
if( !is_admin() ){
add_filter( 'get_comment_author_link', 'remove_author_link', 10, 3 );
}
function remove_author_link( $return, $author, $comment_id ) {
return $author;
}
Usunięcie linków tylko z bloku najnowszych komentarzy (widgetu Recent Comments)
Rozwiązanie jest nieco bardziej skomplikowane. Używamy dodatkowych 2 funkcji aby dodać filtr bezpośrednio przed i za sidebarem (panelem bocznym), tak aby nasza funkcja usuwania komentarzy była wywołana tylko w jego obrębie. W moim szablonie panel boczny wywoływany jest z ID o nazwie „blog-sidebar” i tego dotyczy warunek w liniach 9 i 16 poniższego kodu.
function remove_author_link( $return, $author, $comment_id ) {
return $author;
}
add_action( 'dynamic_sidebar_before', 'my_sidebar_checker', 10, 2);
add_action( 'dynamic_sidebar_after', 'my_sidebar_checker_after', 10, 2);
function my_sidebar_checker( $index, $bool ) {
if ( 'blog-sidebar' == $index ) {
// Add the filter
add_filter( 'get_comment_author_link', 'remove_author_link', 10, 3 );
}
}
function my_sidebar_checker_after( $index, $bool ) {
if ( 'blog-sidebar' == $index ) {
// Remove the filter
remove_filter( 'get_comment_author_link', 'remove_author_link', 10);
}
}
Rozwiązanie powstało w oparciu o poniższe źródła:
https://ohiwill.com/recent-comments-author-avatar-remove-comment-author-link/
https://stackoverflow.com/questions/41127713/wordpress-add-filter-condition-for-widget-area