Вообщем, постараюсь как можно детальнее описать задумку. Нужно скриптом пересылать данные в блог (POST метод), тем самым оставляя там комментарий. Но то ли я где-то ошибся, то ли руки не оттуда растут, но у меня просто сохраняется страничка, данные не передаются. Вот листинг моего скрипта: | Код | <?php
$data = urlencode('author=Kelly&[email protected]&url=http://buy.com&comment=nice&comment_post_ID=5'); $useragent="Mozilla/5.0 (Windows; U; Windows NT 5.0; us; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6";
$URL = "http://localhost/wordpress/wp-comments-post.php?"; $cp = curl_init($URL); curl_setopt($cp, CURLOPT_USERAGENT, $useragent); curl_setopt($cp, CURLOPT_POST, 1); curl_setopt($cp, CURLOPT_POSTFIELDS,$data); curl_setopt($cp, CURLOPT_RETURNTRANSFER, 1); $code = curl_exec($cp); curl_close($cp); ?>
|
Вот листинг формы, значения которой я передаю: | Код |
<form action="http://localhost/wordpress/wp-comments-post.php" method="post" id="commentform">
<p><input type="text" name="author" id="author" value="Kiko" size="22" tabindex="1" /> <label for="author"><small>Name (required)</small></label></p>
<p><input type="text" name="email" id="email" value="[email protected]" size="22" tabindex="2" /> <label for="email"><small>Mail (will not be published) (required)</small></label></p>
<p><input type="text" name="url" id="url" value="http://bughy.com/" size="22" tabindex="3" /> <label for="url"><small>Website</small></label></p>
<!--<p><small><strong>XHTML:</strong> You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong> </small></p>-->
<p><textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p>
<p><input name="submit" type="submit" id="submit" tabindex="5" value="Submit Comment" /> <input type="hidden" name="comment_post_ID" value="15" /> </p>
|
Ну и навсякий случай выкладываю листинг файла, который принимает данные (wp-comments-post.php): | Код |
<?php require( dirname(__FILE__) . '/wp-config.php' );
nocache_headers();
$comment_post_ID = (int) $_POST['comment_post_ID'];
$status = $wpdb->get_row("SELECT post_status, comment_status FROM $wpdb->posts WHERE ID = '$comment_post_ID'");
if ( empty($status->comment_status) ) { do_action('comment_id_not_found', $comment_post_ID); exit; } elseif ( 'closed' == $status->comment_status ) { do_action('comment_closed', $comment_post_ID); wp_die( __('Sorry, comments are closed for this item.') ); } elseif ( 'draft' == $status->post_status ) { do_action('comment_on_draft', $comment_post_ID); exit; }
$comment_author = trim($_POST['author']); $comment_author_email = trim($_POST['email']); $comment_author_url = trim($_POST['url']); $comment_content = trim($_POST['comment']);
// If the user is logged in $user = wp_get_current_user(); if ( $user->ID ) : $comment_author = $wpdb->escape($user->display_name); $comment_author_email = $wpdb->escape($user->user_email); $comment_author_url = $wpdb->escape($user->user_url); else : if ( get_option('comment_registration') ) wp_die( __('Sorry, you must be logged in to post a comment.') ); endif;
$comment_type = '';
if ( get_option('require_name_email') && !$user->ID ) { if ( 6 > strlen($comment_author_email) || '' == $comment_author ) wp_die( __('Error: please fill the required fields (name, email).') ); elseif ( !is_email($comment_author_email)) wp_die( __('Error: please enter a valid email address.') ); }
if ( '' == $comment_content ) wp_die( __('Error: please type a comment.') );
$commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type', 'user_ID');
$comment_id = wp_new_comment( $commentdata );
$comment = get_comment($comment_id); if ( !$user->ID ) : setcookie('comment_author_' . COOKIEHASH, $comment->comment_author, time() + 30000000, COOKIEPATH, COOKIE_DOMAIN); setcookie('comment_author_email_' . COOKIEHASH, $comment->comment_author_email, time() + 30000000, COOKIEPATH, COOKIE_DOMAIN); setcookie('comment_author_url_' . COOKIEHASH, clean_url($comment->comment_author_url), time() + 30000000, COOKIEPATH, COOKIE_DOMAIN); endif;
$location = ( empty($_POST['redirect_to']) ? get_permalink($comment_post_ID) : $_POST['redirect_to'] ) . '#comment-' . $comment_id; $location = apply_filters('comment_post_redirect', $location, $comment);
wp_redirect($location);
?>
|
Да, кстати, если вводить руками в браузер http://localhost/wordpress/wp-comments-pos...mment_post_ID=5, тоже ничего не происходит.
|