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.
- Posted in:
- WordPress
- Tags:
- WordPress tricks


User level is deprecated starting with WP 3.0
Poti utiliza Roles in schimb ( http://codex.wordpress.org/Roles_and_Capabilities ).
(multi inainte)
nu e mai usor cu url blacklist din wordpress ?!
@vim: când am făcut toată treaba eram într-o viteză prea mare să văd că e deprecated
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
Nice.