Question

OK, il y a eu plusieurs postes ici sur les formulaires de publication frontend. Je les ai tous lus, ce qui m'a là où je suis. Maintenant, toutes les formes que je viens à travers a une certaine forme de validation qui semble vérifier une valeur pour les champs que vous voulez faire nécessaire. Je les ai essayé, et je ne peux rien au travail. Je ne peux pas faire des champs obligatoires. Tout le reste de la forme est parfaite. Mais j'aimerais faire respecter mes champs obligatoires (bonus pour les messages d'erreur appropriés).

J'ai essayé de regarder autour sur Google, je ne pense pas vraiment JS est ce que je veux utiliser pour cela. Et toute autre validation de php Je ne peux pas sembler faire soit le travail. Je suis sûr que je les intégrer mal en quelque sorte.

Voici ce que j'ai: http://pastebin.com/rw4c6jZQ (lignes complète de modèles 9-19 sont censé être la validation)

Mon script de traitement à l'au du modèle:

    <?php 
if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) &&  $_POST['action'] == "new_post") { 

    // Do some minor form validation to make sure there is content 
    if (isset ($_POST['title'])) { 
        $title =  $_POST['title']; 
    } else { 
        echo 'Please enter the wine name'; 
    } 
    if (isset ($_POST['description'])) { 
        $description = $_POST['description']; 
    } else { 
        echo 'Please enter some notes'; 
    } 

    $tags = $_POST['post_tags']; 
    $winerating = $_POST['winerating']; 

    // ADD THE FORM INPUT TO $new_post ARRAY 
    $new_post = array( 
    'post_title'    =>   $title, 
    'post_content'  =>   $description, 
    'post_category' =>   array($_POST['cat']),  // Usable for custom taxonomies too 
    'tags_input'    =>   array($tags), 
    'post_status'   =>   'publish',           // Choose: publish, preview, future, draft, etc. 
    'post_type' =>   'post',  //'post',page' or use a custom post type if you want to 
    'winerating'    =>   $winerating
    ); 

    //SAVE THE POST 
    $pid = wp_insert_post($new_post); 

             //KEEPS OUR COMMA SEPARATED TAGS AS INDIVIDUAL 
    wp_set_post_tags($pid, $_POST['post_tags']); 

    //REDIRECT TO THE NEW POST ON SAVE 
    $link = get_permalink( $pid ); 
    wp_redirect( $link ); 

    //ADD OUR CUSTOM FIELDS 
    add_post_meta($pid, 'rating', $winerating, true);  

    //INSERT OUR MEDIA ATTACHMENTS 
    if ($_FILES) { 
        foreach ($_FILES as $file => $array) { 
        $newupload = insert_attachment($file,$pid); 
        // $newupload returns the attachment id of the file that 
        // was just uploaded. Do whatever you want with that now. 
        } 

    } // END THE IF STATEMENT FOR FILES 

} // END THE IF STATEMENT THAT STARTED THE WHOLE FORM 

//POST THE POST YO 
do_action('wp_insert_post', 'wp_insert_post'); 

La forme et tout le reste peut être vu dans le pastebin pour voir tout cela dans son contexte. Merci beaucoup!

Était-ce utile?

La solution

La meilleure façon de faire la validation du formulaire est une combinaison de JavaScript et PHP.

La raison pour laquelle vous souhaitez effectuer la validation JavaScript est de donner aux utilisateurs la possibilité de corriger leurs erreurs sans soumettre le formulaire. De plus, il arrêtera des erreurs occasionnelles. Vous devez aussi assurer la validation sur le back-end en cas JavaScript est désactivé.

De toute façon, désinfectante vos données doivent faire partie de ce processus. Utilisez une de ces fonctions de WordPress pour vous aider là-bas. Validation des données

Pour la validation JavaScript, je vous recommande le jQuery plug-in Validation . Il est super facile à mettre en œuvre et personnaliser.

En ce qui concerne la validation de votre PHP, vous pouvez essayer d'ajouter ceci pour vérifier les valeurs vides: $_POST['title'] != ''

Autres conseils

je pense, la bonne façon via php est le esc_attr * fonctions de WordPress et toutes les fonctions dans ce fichier: wp-includes / formatt ing.php

Utilisez également les possibilités de PHP: filter_var

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top