Функция одобренных комментариев

Пишу один плагин, для него мне требуется функция наличия одобренных комментариев.
Как можно проверить при добавлении комментария, если у него уже одобренные комментарии? В самом вордпресс это встроено, но нужной функции так и не нашел.

поройтесь в wp-includes/comments.php

там вначале сразу вроде оно. может поможет разобраться

function check_comment($author, $email, $url, $comment, $user_ip, $user_agent, $comment_type) {
    global $wpdb;

    if ( 1 == get_option('comment_moderation') )
        return false; // If moderation is set to manual

    if ( get_option('comment_max_links') && preg_match_all("/<[Aa][^>]*[Hh][Rr][Ee][Ff]=['\"]([^\"'>]+)[^>]*>/", apply_filters('comment_text',$comment), $out) >= get_option('comment_max_links') )
        return false; // Check # of external links

    $mod_keys = trim(get_option('moderation_keys'));
    if ( !empty($mod_keys) ) {
        $words = explode("\n", $mod_keys );

        foreach ( (array) $words as $word) {
            $word = trim($word);

            // Skip empty lines
            if ( empty($word) )
                continue;

            // Do some escaping magic so that '#' chars in the
            // spam words don't break things:
            $word = preg_quote($word, '#');

            $pattern = "#$word#i";
            if ( preg_match($pattern, $author) ) return false;
            if ( preg_match($pattern, $email) ) return false;
            if ( preg_match($pattern, $url) ) return false;
            if ( preg_match($pattern, $comment) ) return false;
            if ( preg_match($pattern, $user_ip) ) return false;
            if ( preg_match($pattern, $user_agent) ) return false;
        }
    }

    // Comment whitelisting:
    if ( 1 == get_option('comment_whitelist')) {
        if ( 'trackback' == $comment_type || 'pingback' == $comment_type ) { // check if domain is in blogroll
            $uri = parse_url($url);
            $domain = $uri['host'];
            $uri = parse_url( get_option('home') );
            $home_domain = $uri['host'];
            if ( $wpdb->get_var($wpdb->prepare("SELECT link_id FROM $wpdb->links WHERE link_url LIKE (%s) LIMIT 1", '%'.$domain.'%')) || $domain == $home_domain )
                return true;
            else
                return false;
        } elseif ( $author != '' && $email != '' ) {
            // expected_slashed ($author, $email)
            $ok_to_comment = $wpdb->get_var("SELECT comment_approved FROM $wpdb->comments WHERE comment_author = '$author' AND comment_author_email = '$email' and comment_approved = '1' LIMIT 1");
            if ( ( 1 == $ok_to_comment ) &&
                ( empty($mod_keys) || false === strpos( $email, $mod_keys) ) )
                    return true;
            else
                return false;
        } else {
            return false;
        }
    }
    return true;
}

а именно я про это

// expected_slashed ($author, $email)
            $ok_to_comment = $wpdb->get_var("SELECT comment_approved FROM $wpdb->comments WHERE comment_author = '$author' AND comment_author_email = '$email' and comment_approved = '1' LIMIT 1");

Lecactus, спасибо, нашел, то что нужно.

Anonymous
Отправить
Ответ на: