home *** CD-ROM | disk | FTP | other *** search
/ HTML Examples / WP.iso / wordpress / wp-comments-post.php < prev    next >
Encoding:
PHP Script  |  2016-08-29  |  1.6 KB  |  61 lines

  1. <?php
  2. /**
  3.  * Handles Comment Post to WordPress and prevents duplicate comment posting.
  4.  *
  5.  * @package WordPress
  6.  */
  7.  
  8. if ( 'POST' != $_SERVER['REQUEST_METHOD'] ) {
  9.     $protocol = $_SERVER['SERVER_PROTOCOL'];
  10.     if ( ! in_array( $protocol, array( 'HTTP/1.1', 'HTTP/2', 'HTTP/2.0' ) ) ) {
  11.         $protocol = 'HTTP/1.0';
  12.     }
  13.  
  14.     header('Allow: POST');
  15.     header("$protocol 405 Method Not Allowed");
  16.     header('Content-Type: text/plain');
  17.     exit;
  18. }
  19.  
  20. /** Sets up the WordPress Environment. */
  21. require( dirname(__FILE__) . '/wp-load.php' );
  22.  
  23. nocache_headers();
  24.  
  25. $comment = wp_handle_comment_submission( wp_unslash( $_POST ) );
  26. if ( is_wp_error( $comment ) ) {
  27.     $data = intval( $comment->get_error_data() );
  28.     if ( ! empty( $data ) ) {
  29.         wp_die( '<p>' . $comment->get_error_message() . '</p>', __( 'Comment Submission Failure' ), array( 'response' => $data, 'back_link' => true ) );
  30.     } else {
  31.         exit;
  32.     }
  33. }
  34.  
  35. $user = wp_get_current_user();
  36.  
  37. /**
  38.  * Perform other actions when comment cookies are set.
  39.  *
  40.  * @since 3.4.0
  41.  *
  42.  * @param WP_Comment $comment Comment object.
  43.  * @param WP_User    $user    User object. The user may not exist.
  44.  */
  45. do_action( 'set_comment_cookies', $comment, $user );
  46.  
  47. $location = empty( $_POST['redirect_to'] ) ? get_comment_link( $comment ) : $_POST['redirect_to'] . '#comment-' . $comment->comment_ID;
  48.  
  49. /**
  50.  * Filters the location URI to send the commenter after posting.
  51.  *
  52.  * @since 2.0.5
  53.  *
  54.  * @param string     $location The 'redirect_to' URI sent via $_POST.
  55.  * @param WP_Comment $comment  Comment object.
  56.  */
  57. $location = apply_filters( 'comment_post_redirect', $location, $comment );
  58.  
  59. wp_safe_redirect( $location );
  60. exit;
  61.