Интегриране на Google reCaptcha в comment form

kpetrov

Well-Known Member
WP тема.
Проблема е, че формата е изведена от функция, просто така:

<?php comment_form(); ?>

И аз не виждам, къде другаде, освен във самата функция трябва да се сложи <div-а на Google>, ако може и изобщо може да работи.

А лайв е на http://nwotoprated.org

А самата функция е: Давам го всичко надолу от файла..., но там където е болд някъде там може би трябва да се сложи div тага

function comment_form( $args = array(), $post_id = null ) {
if ( null === $post_id )
$post_id = get_the_ID();

// Exit the function when comments for the post are closed.
if ( ! comments_open( $post_id ) ) {
/**
* Fires after the comment form if comments are closed.
*
* @since 3.0.0
*/
do_action( 'comment_form_comments_closed' );

return;
}

$commenter = wp_get_current_commenter();
$user = wp_get_current_user();
$user_identity = $user->exists() ? $user->display_name : '';

$args = wp_parse_args( $args );
if ( ! isset( $args['format'] ) )
$args['format'] = current_theme_supports( 'html5', 'comment-form' ) ? 'html5' : 'xhtml';

$req = get_option( 'require_name_email' );
$aria_req = ( $req ? " aria-required='true'" : '' );
$html_req = ( $req ? " required='required'" : '' );
$html5 = 'html5' === $args['format'];
$fields = array(
'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
'<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30" maxlength="245"' . $aria_req . $html_req . ' /></p>',
'email' => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
'<input id="email" name="email" ' . ( $html5 ? 'type="email"' : 'type="text"' ) . ' value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="30" maxlength="100" aria-describedby="email-notes"' . $aria_req . $html_req . ' /></p>',
'url' => '<p class="comment-form-url"><label for="url">' . __( 'Website' ) . '</label> ' .

'<input id="url" name="url" ' . ( $html5 ? 'type="url"' : 'type="text"' ) . ' value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" maxlength="200" /></p>',
);

$required_text = sprintf( ' ' . __('Required fields are marked %s'), '<span class="required">*</span>' );


/**
* Filters the default comment form fields.
*
* @since 3.0.0
*
* @param array $fields The default comment fields.
*/
$fields = apply_filters( 'comment_form_default_fields', $fields );
$defaults = array(
'fields' => $fields,
'comment_field' => '<p class="comment-form-comment"><label for="comment">' . _x( 'Comment', 'noun' ) . '</label> <textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" aria-required="true" required="required"></textarea></p>',
/** This filter is documented in wp-includes/link-template.php */
'must_log_in' => '<p class="must-log-in">' . sprintf(
/* translators: %s: login URL */
__( 'You must be <a href="%s">logged in</a> to post a comment.' ),
wp_login_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) )
) . '</p>',
/** This filter is documented in wp-includes/link-template.php */
'logged_in_as' => '<p class="logged-in-as">' . sprintf(
/* translators: 1: edit user link, 2: accessibility text, 3: user name, 4: logout URL */
__( '<a href="%1$s" aria-label="%2$s">Logged in as %3$s</a>. <a href="%4$s">Log out?</a>' ),
get_edit_user_link(),
/* translators: %s: user name */
esc_attr( sprintf( __( 'Logged in as %s. Edit your profile.' ), $user_identity ) ),
$user_identity,
wp_logout_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) )
) . '</p>',
'comment_notes_before' => '<p class="comment-notes"><span id="email-notes">' . __( 'Your email address will not be published.' ) . '</span>'. ( $req ? $required_text : '' ) . '</p>',
'comment_notes_after' => '',
'action' => site_url( '/wp-comments-post.php' ),
'id_form' => 'commentform',
'id_submit' => 'submit',
'class_form' => 'comment-form',
'class_submit' => 'submit',
'name_submit' => 'submit',
'title_reply' => __( 'Leave a Reply' ),
'title_reply_to' => __( 'Leave a Reply to %s' ),
'title_reply_before' => '<h3 id="reply-title" class="comment-reply-title">',
'title_reply_after' => '</h3>',
'cancel_reply_before' => ' <small>',
'cancel_reply_after' => '</small>',
'cancel_reply_link' => __( 'Cancel reply' ),
'label_submit' => __( 'Post Comment' ),
'submit_button' => '<input name="%1$s" type="submit" id="%2$s" class="%3$s" value="%4$s" />',
'submit_field' => '<p class="form-submit">%1$s %2$s</p>',
'format' => 'xhtml',
);

/**
* Filters the comment form default arguments.
*
* Use {@see 'comment_form_default_fields'} to filter the comment fields.
*
* @since 3.0.0
*
* @param array $defaults The default comment form arguments.
*/
$args = wp_parse_args( $args, apply_filters( 'comment_form_defaults', $defaults ) );

// Ensure that the filtered args contain all required default values.
$args = array_merge( $defaults, $args );

/**
* Fires before the comment form.
*
* @since 3.0.0
*/
do_action( 'comment_form_before' );

?>
<div id="respond" class="comment-respond">
<?php
echo $args['title_reply_before'];

comment_form_title( $args['title_reply'], $args['title_reply_to'] );

echo $args['cancel_reply_before'];

cancel_comment_reply_link( $args['cancel_reply_link'] );

echo $args['cancel_reply_after'];

echo $args['title_reply_after'];

if ( get_option( 'comment_registration' ) && !is_user_logged_in() ) :
echo $args['must_log_in'];
/**
* Fires after the HTML-formatted 'must log in after' message in the comment form.
*
* @since 3.0.0
*/
do_action( 'comment_form_must_log_in_after' );
else : ?>
<form action="<?php echo esc_url( $args['action'] ); ?>" method="post" id="<?php echo esc_attr( $args['id_form'] ); ?>" class="<?php echo esc_attr( $args['class_form'] ); ?>"<?php echo $html5 ? ' novalidate' : ''; ?>>
<?php
/**
* Fires at the top of the comment form, inside the form tag.
*
* @since 3.0.0
*/
do_action( 'comment_form_top' );

if ( is_user_logged_in() ) :
/**
* Filters the 'logged in' message for the comment form for display.
*
* @since 3.0.0
*
* @param string $args_logged_in The logged-in-as HTML-formatted message.
* @param array $commenter An array containing the comment author's
* username, email, and URL.
* @param string $user_identity If the commenter is a registered user,
* the display name, blank otherwise.
*/
echo apply_filters( 'comment_form_logged_in', $args['logged_in_as'], $commenter, $user_identity );

/**
* Fires after the is_user_logged_in() check in the comment form.
*
* @since 3.0.0
*
* @param array $commenter An array containing the comment author's
* username, email, and URL.
* @param string $user_identity If the commenter is a registered user,
* the display name, blank otherwise.
*/
do_action( 'comment_form_logged_in_after', $commenter, $user_identity );

else :

echo $args['comment_notes_before'];

endif;

// Prepare an array of all fields, including the textarea
$comment_fields = array( 'comment' => $args['comment_field'] ) + (array) $args['fields'];

/**
* Filters the comment form fields, including the textarea.
*
* @since 4.4.0
*
* @param array $comment_fields The comment fields.
*/
$comment_fields = apply_filters( 'comment_form_fields', $comment_fields );

// Get an array of field names, excluding the textarea
$comment_field_keys = array_diff( array_keys( $comment_fields ), array( 'comment' ) );

// Get the first and the last field name, excluding the textarea
$first_field = reset( $comment_field_keys );
$last_field = end( $comment_field_keys );

foreach ( $comment_fields as $name => $field ) {

if ( 'comment' === $name ) {

/**
* Filters the content of the comment textarea field for display.
*
* @since 3.0.0
*
* @param string $args_comment_field The content of the comment textarea field.
*/
echo apply_filters( 'comment_form_field_comment', $field );

echo $args['comment_notes_after'];

} elseif ( ! is_user_logged_in() ) {

if ( $first_field === $name ) {
/**
* Fires before the comment fields in the comment form, excluding the textarea.
*
* @since 3.0.0
*/
do_action( 'comment_form_before_fields' );
}

/**
* Filters a comment form field for display.
*
* The dynamic portion of the filter hook, `$name`, refers to the name
* of the comment form field. Such as 'author', 'email', or 'url'.
*
* @since 3.0.0
*
* @param string $field The HTML-formatted output of the comment form field.
*/
echo apply_filters( "comment_form_field_{$name}", $field ) . "\n";

if ( $last_field === $name ) {
/**
* Fires after the comment fields in the comment form, excluding the textarea.
*
* @since 3.0.0
*/
do_action( 'comment_form_after_fields' );
}
}
}

$submit_button = sprintf(
$args['submit_button'],
esc_attr( $args['name_submit'] ),
esc_attr( $args['id_submit'] ),
esc_attr( $args['class_submit'] ),
esc_attr( $args['label_submit'] )
);

/**
* Filters the submit button for the comment form to display.
*
* @since 4.2.0
*
* @param string $submit_button HTML markup for the submit button.
* @param array $args Arguments passed to `comment_form()`.
*/
$submit_button = apply_filters( 'comment_form_submit_button', $submit_button, $args );

$submit_field = sprintf(
$args['submit_field'],
$submit_button,
get_comment_id_fields( $post_id )
);

/**
* Filters the submit field for the comment form to display.
*
* The submit field includes the submit button, hidden fields for the
* comment form, and any wrapper markup.
*
* @since 4.2.0
*
* @param string $submit_field HTML markup for the submit field.
* @param array $args Arguments passed to comment_form().
*/
echo apply_filters( 'comment_form_submit_field', $submit_field, $args );

/**
* Fires at the bottom of the comment form, inside the closing </form> tag.
*
* @since 1.5.0
*
* @param int $post_id The post ID.
*/
do_action( 'comment_form', $post_id );
?>
</form>
<?php endif; ?>
</div><!-- #respond -->
<?php

/**
* Fires after the comment form.
*
* @since 3.0.0
*/
do_action( 'comment_form_after' );
}
 
Какво? Абе драги, аз първо не разбирам от кодиране, затова питам, но второ комент формата е изведена от функция, и тага на гугъл там не върши никаква работа, той е извън формата. Затова, ако изобщо може да се внедри в самата функция, и да работи... това и попитах.
 
По-добре не пипай в кода, а ползвай някой от многобройните плъгини.
Плъгини wordpress няма ли? И чувал ли си за pastebin.com ?
Не бях чувал за pastebin.com, ще погледна...
А за плъгините, ами избягвам да ползвам плъгини ако може да се направи по друг начин... :p
 
Мдам, никаква логика няма човек да се учи.
Било ЗЗДП, било бутон Insert -> Code
Шляпай си код в текстов вид и те боли фара за тези, дето ще го четат.
 
В последните дни сигурно си пуснал толкова теми, колко аз за целия си престой тук...и то всичките с по 1 изречение и насочени към лапане от форума без да допринесеш с абсолютно нищо за него. Научете се най-накрая, че това е форум за бизнес, колкото и да не им харесва на някои...
 
Шляпай си код в текстов вид и те боли фара за тези, дето ще го четат.
Точно поради изключително умелото му представяне на въпросите получава толкова много смислени отговори :D

В последните дни сигурно си пуснал толкова теми, колко аз за целия си престой тук...и то всичките с по 1 изречение и насочени към лапане от форума без да допринесеш с абсолютно нищо за него.
Притесняваш се, че първото място в класацията за форумен клоун ти се изплъзва ли? :D

Научете се най-накрая, че това е форум за бизнес, колкото и да не им харесва на някои...
Учудващо е че ти си още тук ...
 
Точно поради изключително умелото му представяне на въпросите получава толкова много смислени отговори :D


Притесняваш се, че първото място в класацията за форумен клоун ти се изплъзва ли? :D


Учудващо е че ти си още тук ...
Напротив, за теб е учудващо. Аз полезна тема от теб не съм прочел, нито тема, в която да предлагаш услуга. Това значи, че:
1. Страх те е да не те захапят заради лошото качество и твоята некадърност
2. Работиш в баничарница и си много далеч от тази сфера, тук си просто защото си мислиш, че по този начин ставаш "елитен".

Много е удобно да не отговаряш никога на поставените въпроси директно, а да увърташ до безкрайност и да заобикаляш темата, за да не се изложиш. Лошото е, че аз такива като теб цял живот се чудя как да изрина от офиса си перманентно, за да не създават повече проблеми на мен и компанията ми и надушвам този комплекс за малоценност от километри, така че мен не може да ме заблудиш. А сега се скрий от жегата, че гледам лошо ти влияе.
 
В последните дни сигурно си пуснал толкова теми, колко аз за целия си престой тук...и то всичките с по 1 изречение и насочени към лапане от форума без да допринесеш с абсолютно нищо за него. Научете се най-накрая, че това е форум за бизнес, колкото и да не им харесва на някои...
То остава и аз, който тепърва захващам нещо с намерение за онлайн бизнес да уча други:) Информация в уеба достатъчно, аз си я отсявам. Стига да имам финансовият ресурс, мога да направя всеки свой проект прилично популярен за нивото.
Какво аз да уча, хората всичко са измислили.. Но ето нещо, което може би не се ползва много. В този смисъл пуснах и темата, че търся хора, които са активни по активни и популярни международни форуми с идеята да си закупя от тях един ред в подписа им с линк към моя сайт. Ето ти идея, дали ще ти е полезна, нз.

Колкото и от високо да ме гледаш, аз наистина 1 по 1 ми идват идеите и ги разнообразявам, стига да имах финансов ресурс...Макар и нов бих могъл да направя нещо.

Ест ми е ясно и раздразнението при някой хора от моята особа. Какво да направя, честно казано не държа особено на мнението на непознати за мен. Пък и така или иначе миналото не се връща.

Ест., че е сайт за бизнес, но аз поне ще опитам моят евентуален бизнес да го правя честно, без да крада, и без да си извръвям душата залагайки на неща, който биха ме направили популярен но ненавиждам.

Всеки си е свободен да отговаря или да не отговаря и т.н.
 
Напротив, за теб е учудващо. Аз полезна тема от теб не съм прочел, нито тема, в която да предлагаш услуга. Това значи, че:
За разлика от теб не изпитвам въпиеща нужда от жълти стотинки събрани от случайни клиенти.

1. Страх те е да не те захапят заради лошото качество и твоята некадърност
Като гледам чекиджийските ти теми направо преливат от отзиви на доволни клиенти :D

2. Работиш в баничарница и си много далеч от тази сфера, тук си просто защото си мислиш, че по този начин ставаш "елитен".
И тук ще трябва да те разстроя, преди 11 години си купих офис на 1км от нас и работя там.

Много е удобно да не отговаряш никога на поставените въпроси директно, а да увърташ до безкрайност и да заобикаляш темата, за да не се изложиш.
Поне 10 пъти съм ти предлагал да се срещнем и да извадим финансови документи за доходи, а ти елегантно се скатаваш. Така че, по-добре си трай палячо.

Лошото е, че аз такива като теб цял живот се чудя как да изрина от офиса си перманентно, за да не създават повече проблеми на мен и компанията ми и надушвам този комплекс за малоценност от километри, така че мен не може да ме заблудиш.
Точно за комплекса, пораждаш в съзнанието ти имагинерни коли, апартаменти и полети до Чикаго си помислих и аз :D
А да и летище София има сайт ... rofl

А сега се скрий от жегата, че гледам лошо ти влияе.
А сега бягай с 300 в оранжерията да набереш био домати собствена селекция. Аз си седя на хладно не ме мисли.
 
За разлика от теб не изпитвам въпиеща нужда от жълти стотинки събрани от случайни клиенти.

Като гледам чекиджийските ти теми направо преливат от отзиви на доволни клиенти :D


И тук ще трябва да те разстроя, преди 11 години си купих офис на 1км от нас и работя там.


Поне 10 пъти съм ти предлагал да се срещнем и да извадим финансови документи за доходи, а ти елегантно се скатаваш. Така че, по-добре си трай палячо.

Точно за комплекса, пораждаш в съзнанието ти имагинерни коли, апартаменти и полети до Чикаго си помислих и аз :D
А да и летище София има сайт ... rofl


А сега бягай с 300 в оранжерията да набереш био домати собствена селекция. Аз си седя на хладно не ме мисли.

Честно казано ми е интересно какво предлагаш при положение, че имаш такива изразни средства...в една тема беше казвал, че и летиш много, значи може да си съвременен Бай Ганьо, но вместо мускали с розово масло да разнасяш кисело мляко или може би нещо дори по-евтино, защото аз не бих поверил и копие от сертификати за участие в семинари на тебе... а относно срещите - нито мисля да излизам с теб на романтични срещи, нито да си пия уискито с теб, нито пък те мисля за потенциален клиент (слава богу), така че не виждам полза от това - времето е пари, Торбаланчо, а аз не смятам да губя пари за нищожества като теб.

Относно колите - снимки предполагам не искаш да ти пращам, тъй като ще кажеш, че си измислям, но това въобще не ме вълнува. А ако не можеш да си позволиш превърналия се в олицетворение на простотията ти полет до Чикаго - много лошо за теб.

А домати съм брал вчера, в момента дори отивам вкъщи да си направя салата Капрезе с домашно песто и голям розов домат, както и малко хубава моцарела. Така че - мен не ме мисли.
 
а относно срещите - нито мисля да излизам с теб на романтични срещи
Поне 10 пъти съм ти предлагал да се срещнем и да извадим финансови документи за доходи, а ти елегантно се скатаваш.
Много е удобно да не отговаряш никога на поставените въпроси директно, а да увърташ до безкрайност и да заобикаляш темата, за да не се изложиш.
За пореден път доказваш, че си въздухар и лаладажия.

Относно колите - снимки предполагам не искаш да ти пращам, тъй като ще кажеш, че си измислям, но това въобще не ме вълнува. А ако не можеш да си позволиш превърналия се в олицетворение на простотията ти полет до Чикаго - много лошо за теб.
Как да не искам, ама и снимка на талона приложи :D
 

Горе