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.