KB Plugins

The best Wordpress plugins are free

Print this post

KB Comment Links

Here’s a little plugin to fix an annoying problem. Do you ever have commenters paste an entire URL into their comment as plain text, rather than putting it in <a href="..."> tags? Or if they do use the a tags, do they still use the URL as the link text?

Sure looks ugly when people do that. Here’s a little plugin to replace URLs that occur in comments with [link]. We don’t strip the URL–the word [link] will be clickable–we just make the comment prettier. Enjoy:

<?php
/*
Plugin Name: KB Comment Links
Plugin URI: http://adambrown.info/b/widgets/tag/kb-comment-links/
Description: Replaces long, ugly URLs in comments with a short link
Author: Adam R. Brown
Version: 1.0
Author URI: http://adambrown.info/
*/

function kbcl_comment_filter($comment){
	if (false===strpos($comment,'http://'))
		return $comment;
	// links in <a> tags using URL as link text
	$comment = preg_replace('~(<a[^>]+>)(http://\S+)</a>~', '$1[link]</a>', $comment);
	// links that aren't in <a> tags
	$comment = preg_replace('~(\s|<p>)(http://\S+)(\s|</p>)~', '$1<a href="$2">[link]</a>$3', $comment);
	return $comment;
}
add_filter('comment_text', 'kbcl_comment_filter');

?>

No Comments Yet

Leave a comment

Comment Guidelines
  • Yes, your comments will be visible to everybody. (Unless you use the private contact form.)
  • Allowed HTML: <a> <b> <blockquote> <cite> <code> <em> <i> <strong>
  • Code: Put code in `backticks` (above your "Tab" key) or it won't display well
  • Gravatars: To override the default image by your comment, use a gravatar
  • Links: If you include more than one link, your comment will go into the spam queue

Please read before commenting: Because my real job has me swamped at the moment, I am not supporting my plugins at this time. Sorry. This may last several weeks.

If you have a bug report, feature request, or other general feedback about a plugin, please leave a comment—but do not expect an immediate response. If you are requesting help, though, please check the plugin's documentation thoroughly rather than ask your question as a comment.

Thank you for your understanding.