Quantcast
Channel: dboho.pl - SEO Blog i Portfolio » PHP i Mysql
Viewing all articles
Browse latest Browse all 4

Usunięcie linku autora w widget Najnowsze komentarze

$
0
0

Witam po krótkiej przerwie. Ostatnio pisało do mnie w tej sprawie kilka osób, a mianowicie w jaki sposób usunąłem link do autorów komentarzy z widgetu w stopce ,,Najnowsze Komentarze”. Otóż szybki i niepolecany sposób na tą modyfikację polega na edycji pliku default-widgets.php, który znajduje się w folderze wp-includes. Dodam, że takich modyfikacji nie powinno się stosować, ponieważ po każdej aktualizacji wordpressa, modyfikacja znika i trzeba ją na nowo wprowadzać, tym bardziej teraz, gdzie niektóre konieczne aktualizacje robione są w tle, więc nawet możemy nie wiedzieć kiedy nasza modyfikacja zniknie, a ponadto w przypadku grzebania w plikach źródłowych WordPressa, jesteśmy narażeni na stworzenie błędy, który mogą wykorzystać osoby trzecie do chociażby uzyskania dostępu do bloga. W dolnej części artykułu znajduje się lepsze rozwiązanie na wprowadzenie takiej modyfikacji.

Plik default-widgets.php przed wprowadzeniem modyfikacji:

		if ( $comments ) {
			// Prime cache for associated posts. (Prime post term cache if we need it for permalinks.)
			$post_ids = array_unique( wp_list_pluck( $comments, 'comment_post_ID' ) );
			_prime_post_caches( $post_ids, strpos( get_option( 'permalink_structure' ), '%category%' ), false );

			foreach ( (array) $comments as $comment) {
				$output .=  '<li class="recentcomments">' . /* translators: comments widget: 1: comment author, 2: post link */ sprintf(_x('%1$s on %2$s', 'widgets'), get_comment_author_link(), '<a href="' . esc_url( get_comment_link($comment->comment_ID) ) . '">' . get_the_title($comment->comment_post_ID) . '</a>') . '</li>';
			}
 		}

Plik default-widgets.php po wprowadzeniu modyfikacji:

		if ( $comments ) {
			// Prime cache for associated posts. (Prime post term cache if we need it for permalinks.)
			$post_ids = array_unique( wp_list_pluck( $comments, 'comment_post_ID' ) );
			_prime_post_caches( $post_ids, strpos( get_option( 'permalink_structure' ), '%category%' ), false );

			foreach ( (array) $comments as $comment) {
				$output .=  '<li class="recentcomments">' . /* translators: comments widget: 1: comment author, 2: post link */ sprintf(_x('%1$s on %2$s', 'widgets'), get_comment_author(), '<a href="' . esc_url( get_comment_link($comment->comment_ID) ) . '">' . get_the_title($comment->comment_post_ID) . '</a>') . '</li>';
			}
 		}

Pisząc w wielkim skrócie w linii numer 700 należy zmienić: get_comment_author_link() na get_comment_author(), i to by było na tyle. Plik należy zapisać i przesłać na serwer.

Wygląd w postaci zdjęć jak to wygląda przed i po:

Usuwanie linku autora komentarza z widgetu

PO:
Usuwanie linku autora z najnowsze komentarze

Lepsze rozwiązanie

Lepszym rozwiązaniem, aby uniknąć utraty modyfikacji po update WordPress jest stworzenie własnego widgetu na wzór obecnego. W zasadzie wystarczy skopiować cały kod widgetu z najnowszymi komentarzami, zmodyfikować pod swoje potrzeby i wkleić go do pliku functions.php. Krótkie info na ten temat: http://wordpress.stackexchange.com/questions/19587/how-to-hack-recent-comments-default-widget

Mam nadzieję, że wszystko jest zrozumiałe.

Wtyczka, która umożliwia stworzenie bardziej zaawansowanego widgetu najnowsze komentarze: http://wordpress.org/plugins/bwp-recent-comments/

Artykuł przedstawia informację na temat. Eng: How to Remove comment author link from WordPress Recent_Comments widget without plugin.


Viewing all articles
Browse latest Browse all 4

Latest Images