Last active
June 2, 2018 13:02
-
-
Save dsignr/95edba23ea01c9acb31e9c1426b8daf0 to your computer and use it in GitHub Desktop.
PHP syntax example - Wordpress
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Handles Comment Post to WordPress and prevents duplicate comment posting. | |
* | |
* @package WordPress | |
*/ | |
if ( 'POST' != $_SERVER['REQUEST_METHOD'] ) { | |
$protocol = $_SERVER['SERVER_PROTOCOL']; | |
if ( ! in_array( $protocol, array( 'HTTP/1.1', 'HTTP/2', 'HTTP/2.0' ) ) ) { | |
$protocol = 'HTTP/1.0'; | |
} | |
header( 'Allow: POST' ); | |
header( "$protocol 405 Method Not Allowed" ); | |
header( 'Content-Type: text/plain' ); | |
exit; | |
} | |
/** Sets up the WordPress Environment. */ | |
require( dirname( __FILE__ ) . '/wp-load.php' ); | |
nocache_headers(); | |
$comment = wp_handle_comment_submission( wp_unslash( $_POST ) ); | |
if ( is_wp_error( $comment ) ) { | |
$data = intval( $comment->get_error_data() ); | |
if ( ! empty( $data ) ) { | |
wp_die( | |
'<p>' . $comment->get_error_message() . '</p>', __( 'Comment Submission Failure' ), array( | |
'response' => $data, | |
'back_link' => true, | |
) | |
); | |
} else { | |
exit; | |
} | |
} | |
$user = wp_get_current_user(); | |
$cookies_consent = ( isset( $_POST['wp-comment-cookies-consent'] ) ); | |
/** | |
* Perform other actions when comment cookies are set. | |
* | |
* @since 3.4.0 | |
* @since 4.9.6 The `$cookies_consent` parameter was added. | |
* | |
* @param WP_Comment $comment Comment object. | |
* @param WP_User $user Comment author's user object. The user may not exist. | |
* @param boolean $cookies_consent Comment author's consent to store cookies. | |
*/ | |
do_action( 'set_comment_cookies', $comment, $user, $cookies_consent ); | |
$location = empty( $_POST['redirect_to'] ) ? get_comment_link( $comment ) : $_POST['redirect_to'] . '#comment-' . $comment->comment_ID; | |
/** | |
* Filters the location URI to send the commenter after posting. | |
* | |
* @since 2.0.5 | |
* | |
* @param string $location The 'redirect_to' URI sent via $_POST. | |
* @param WP_Comment $comment Comment object. | |
*/ | |
$location = apply_filters( 'comment_post_redirect', $location, $comment ); | |
wp_safe_redirect( $location ); | |
exit; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment