Filtrarea URL-urilor comentatorilor

Ca deținător de blog cu vechime (am împlinit vreo trei ani acum o săptămână; să-mi trăiască, mulțumesc) am fost întotdeauna enervat la maxim de acei comentatori ce completează field-ul URL razna.

O singură dată am încercat să elimin chestia asta, apelând la bunul simț comentatorilor. N-a fost să fie… Și dacă tot am făcut o temă WP de curând, am implementat treaba asta în functions.php:

add_filter('pre_comment_author_url', 'ntz_url_check');
function ntz_url_check($url_submited){
	if(is_user_logged_in()) {
		global $current_user;
	  get_currentuserinfo();
		if($current_user->wp_user_level == 10) {
			return $url_submited;
		}
	}
	$url_match = '~^(?:https?://)?(?:[\w]+\.)(?:\.?[\w]{2,})+$~';
	$url = parse_url(str_replace('www.', '', $url_submited));
	
	// =================================================
	// = Domenii interzise in url-urile comentatorilor =
	// =================================================
	$forbidden_urls = array('google.com', 'iamntz.com', 'google.ro');

	return ( (!preg_match($url_match, $url_submited) || in_array($url['host'], $forbidden_urls) ) ? '' : $url_submited );
}

Pui în array domeniile nedorite (fără www sau http; adaugă WP treburile astea) și aia e. Dacă userul este administrator, poate avea orice url. Cu wp_user_level alegi ce useri pot avea liber la orice link-uri.

4 Comentarii to “Filtrarea URL-urilor comentatorilor”

  1. User level is deprecated starting with WP 3.0
    Poti utiliza Roles in schimb ( http://codex.wordpress.org/Roles_and_Capabilities ).

  2. (multi inainte)
    nu e mai usor cu url blacklist din wordpress ?!

  3. Staicu Ionuț-Bogdan

    @vim: când am făcut toată treaba eram într-o viteză prea mare să văd că e deprecated :D Voi ajusta codul când voi prinde puțin timp liber :)

    @bpv: dacă te referi la setările din wp-admin/options-discussion.php nu e același lucru. Când un comentariu îndeplinește condițiile din setări, intră în spam. Când un comentariu are url razna nu mai intră în spam, ci doar șterge link :)

Show trackbacks

Ți-a plăcut articolul? Lasă un comentariu!

You can insert code snippets using BBcode:
[js].[/js] [html].[/html] [php].[/php] [css].[/css]
You can also use some HTML tags:
<blockquote>.</blockquote> <code>.</code> <a href="">.</a> <strong>.</strong> <em>.</em>

windows apple dropbox facebook twitter