wp_insert_post erstellt doppelten Post mit Safari

Ich habe ein Front-End-Formular, mit dem Benutzer benutzerdefinierte Posts erstellen können. Es funktioniert gut mit Chrome und FF, aber wenn in Safari zwei Beiträge erstellt werden.

Der Code, den ich verwende, ist unten. Ich habe einige Bedingungen in anderen Antworten versucht, aber keine funktionierte. Wie kann ich verhindern, dass wp_insert_post doppelte Beiträge erstellt, wenn sie von Safari gesendet werden?

Vielen Dank

if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && $_POST['action'] == "new_post") { $tags = $_POST['post_tags']; $new_post = array( 'post_title' => $title, 'post_content' => $description, 'post_category' => array($_POST['cat']), 'tags_input' => array($tags), 'post_status' => 'publish',etc. 'post_type' => 'website' ); global $current_user; get_currentuserinfo(); $user_name = strtolower($current_user->user_login); //custom caps will default to lowercase anyway $pid = wp_insert_post($new_post); update_post_meta($pid, "s2member_ccaps_req", $user_name, true); wp_redirect( get_permalink($pid) ); exit(); 

Die Form

  




Solutions Collecting From Web of "wp_insert_post erstellt doppelten Post mit Safari"

Sie könnten versuchen, nonces ( http://codex.wordpress.org/WordPress_Nonces ) in Ihren Anfragen zu verwenden, so dass selbst wenn die Anfrage viele Male gesendet wird, nur 1 Zeit gespeichert wird.

Sie können diese Zeile in Ihrem Formular hinzufügen

 
....

und in dem Code, wo Sie überprüfen:

  $nonce = $_POST['nonce']; if ( ! wp_verify_nonce( $nonce, 'form-nonce' ) ) { die( 'Security check' ); } else { //Your code here }