web-dev-qa-db-fra.com

Poster de front-end avec types, catégories et taxonomies

Je développe actuellement un site wordpress qui ressemblera à un répertoire. Les utilisateurs pourront soumettre des procédures pas à pas, des critiques avancées ainsi que des codes de triche pour les jeux. Nous allions créer un formulaire différent pour chaque page, mais nous avons maintenant décidé qu'un formulaire avec une liste déroulante conviendrait parfaitement.

Je ne trouve pas qu'il y ait un bon plug-in, ce qui tient compte du fait que chaque soumission doit être transmise en tant que "publication en attente" mais également à un type de publication spécifique.

Par exemple, le formulaire que nous utiliserons sera configuré comme suit:

Game name: <post title>
Platform:  <Taxonomy>
Category:  <Category> (role playing, FPS, adventure, etc..)
This is a: () Review () Tutorial () Cheat list  <this is the post type>
Content: <post body>
Tags: <tags>
[Submit]

Lors de la soumission, il faut que l'examen, la triche ou le didacticiel soit défini comme message en attente, dans le type de message choisi dans les cases d'option.

J'utilise actuellement WP User Front End, mais je pourrais probablement utiliser n'importe quelle publication de formulaire front-end suggérée pour une modification plus facile. L'ajout de nouveaux champs au formulaire est facile, leur faire faire des choses est difficile! J'apprécierais toute aide que je pourrais obtenir avec ceci, notre site Web tourne en quelque sorte autour de ces fonctionnalités.

1
Lynne

Il semble que Gravity Forms peut le faire. Je viens de faire une recherche rapide sur les forums d'assistance et j'ai trouvé ceci, une réponse à quelqu'un qui pose presque exactement la même question que vous:

Les formulaires Gravity peuvent être utilisés pour créer des types de publication personnalisés ainsi que des taxonomies personnalisées, mais ils ne le font pas immédiatement. Il faut utiliser les points d'ancrage disponibles pour indiquer à Gravity Forms d'utiliser un type de publication personnalisé ou une taxonomie personnalisée au lieu de la valeur par défaut. Par défaut, il utilise les publications, catégories et tags WordPress standard.

Alors oui, c'est possible, mais cela nécessite du code personnalisé. Lorsque vous êtes prêt à implémenter cela, vous pouvez rechercher des exemples de code dans les forums, ou vous pouvez poster un nouveau message décrivant ce que vous essayez de faire, demander de l'aide et nous pouvons vous aider avec des extraits de code de base. Commencez.

Nous prévoyons de créer ultérieurement un module complémentaire qui facilitera la création de types d'articles personnalisés et l'utilisation de taxonomies personnalisées.

4
Simon Blackbourn

il y a des plugins gratuits qui vous permettent de soumettre des posts depuis le frontend:

et un mieux payé serait:

Mais aucun d’entre eux ne vous donnera la souplesse nécessaire pour coder selon vos besoins. En réalité, une publication de début à la fin consiste à afficher un formulaire et à le traiter. Par conséquent, si vous utilisez votre cas d'utilisation, votre formulaire ressemblerait à ceci:

<!-- New game Post Form -->
<div id="postbox">
<form id="new_post" name="new_post" method="post" action="">

<!-- game name -->
<p><label for="title">Game name</label><br />
<input type="text" id="title" value="" tabindex="1" size="20" name="title" />
</p>

<!-- game platform assuming that the taxonomy is named platform -->
<p><label for="Platform">Platform:</label><br />
<p><?php wp_dropdown_categories( 'show_option_none=Platform&tab_index=4&taxonomy=platform' ); ?></p>

<!-- game Category -->
<p><label for="Category">Category:</label><br />
<p><?php wp_dropdown_categories( 'show_option_none=Category&tab_index=4&taxonomy=category' ); ?></p>

<!-- game post type assuming that the post types are named: review,tutorial,cheat_list-->
<p><label for="post_type">This is a:</label><br />
<p><select name="post_type" id="post_type">
    <option value="review">Review</option>
    <option value="tutorial">Tutorial</option>
    <option value="cheat_list"> Cheat list</option>
</select></p>

<!-- game Content -->
<p><label for="description">Content</label><br />
<textarea id="description" tabindex="3" name="description" cols="50" rows="6"></textarea>
</p>

<!-- game tags -->
<p><label for="post_tags">Tags:</label>
<input type="text" value="" tabindex="5" size="16" name="post_tags" id="post_tags" /></p>
<p align="right"><input type="submit" value="Publish" tabindex="6" id="submit" name="submit" /></p>

<input type="hidden" name="action" value="new_game_post" />
<?php wp_nonce_field( 'new-post' ); ?>
</form>
</div>

et le traitement de votre formulaire serait:

if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) &&  $_POST['action'] == "new_game_post") {

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

    // Add the content of the form to $post as an 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_type']  // Use a custom post type if you want to
    );
    //save the new post
    $pid = wp_insert_post($new_post); 
    //insert taxonomies
    wp_set_post_terms($pid,array($_POST['Platform']),'platform',true);
}

ce n'est pas parfait mais c'est un début et vous devriez avoir l'idée.

J'espère que cela t'aides

4
Bainternet