Formular pentru Adăugarea Postărilor în Tipul de Postare Personalizat

6 mar. 2011, 10:58:03
Vizualizări: 32.1K
Voturi: 9

În principiu, vreau să afișez un formular pe blogul meu (pe o anumită pagină) care să permită oricui să îl completeze și care va crea o postare într-un tip de postare personalizat.

Am văzut răspunsul o dată înainte, dar nu îl mai pot găsi acum.

2
Comentarii

Știu că probabil vrei să construiești asta singur, dar recent am început să lucrez cu un plugin numit Formidable care face asta foarte bine. Există o versiune gratuită, poate ai vrea să o verifici. http://wordpress.org/extend/plugins/formidable/

Dalton Rooney Dalton Rooney
24 ian. 2012 22:13:11

Am încercat Formidable. Dar versiunea gratuită are limitări. Câmpurile pentru dată, oră, câmpuri ascunse etc. sunt blocate.

Eugine Joseph Eugine Joseph
29 ian. 2017 13:27:00
Toate răspunsurile la întrebare 2
13
13

postarea din partea de front-end implică afișarea unui formular și procesarea acestuia:

formular:

<!-- Formular pentru Postare Nouă -->
<div id="postbox">
<form id="new_post" name="new_post" method="post" action="">

<!-- titlul postării -->
<p><label for="title">Titlu</label><br />
<input type="text" id="title" value="" tabindex="1" size="20" name="title" />
</p>

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


<!-- conținutul postării -->
<p><label for="description">Conținut</label><br />
<textarea id="description" tabindex="3" name="description" cols="50" rows="6"></textarea>
</p>

<!-- tag-urile postării -->
<p><label for="post_tags">Etichete:</label>
<input type="text" value="" tabindex="5" size="16" name="post_tags" id="post_tags" /></p>
<p align="right"><input type="submit" value="Publică" tabindex="6" id="submit" name="submit" /></p>

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

procesarea:

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

    // Validare minoră a formularului pentru a verifica prezența conținutului
    if (isset ($_POST['title'])) {
        $title =  $_POST['title'];
    } else {
        echo 'Te rog introdu un titlu';
    }
    if (isset ($_POST['description'])) {
        $description = $_POST['description'];
    } else {
        echo 'Te rog introdu conținutul';
    }
    $tags = $_POST['post_tags'];

    // Adaugă conținutul formularului în $post ca un array
    $new_post = array(
        'post_title'    => $title,
        'post_content'  => $description,
        'post_category' => array($_POST['cat']),  // Utilizabil și pentru taxonomii personalizate
        'tags_input'    => array($tags),
        'post_status'   => 'publish',           // Alege: publish, preview, future, draft, etc.
        'post_type' => 'post_type_name'  //'post',page' sau folosește un tip de postare personalizat dacă dorești
    );
    //salvează noua postare
    $pid = wp_insert_post($new_post); 
    //introdu taxonomiile
}
6 mar. 2011 11:23:57
Comentarii

@Bainternet - Mulțumesc, acum există o modalitate de a face ca formularul să redirecționeze către noul articol după ce îl trimit?

Jared Jared
6 mar. 2011 12:45:02

da, wp_redirect(get_permalink($pid)); exit;

Bainternet Bainternet
6 mar. 2011 12:55:21

@Bainternet - Mulțumesc din nou, dar când pun asta după funcția wp_insert_post, primesc o eroare care spune că nu pot modifica anteturile. Unde ar trebui să o pun?

Jared Jared
6 mar. 2011 22:37:44

wp_insert_post nu modifică niciun header și nu afișează nimic, ceea ce mă face să cred că ceva este afișat în codul tău, postează codul exact pe care îl folosești ca să pot arunca o privire mai atentă

Bainternet Bainternet
6 mar. 2011 23:37:21

@Bainternet - http://pastebin.com/jTzryzAs

Jared Jared
7 mar. 2011 05:11:19

Așa ar trebui să structurezi codul: http://pastebin.com/SRi2ZxWa

ariefbayu ariefbayu
9 mar. 2011 00:56:17

@Jared silent are dreptate, partea de procesare trebuie să vină înaintea formularului

Bainternet Bainternet
9 mar. 2011 01:07:52

Hmm... sunt cam curios. Am folosit toate variantele posibile ale unui formular de postare pe care le-am găsit. Inclusiv aceasta. Nu reușesc să fac porțiunea de validare să funcționeze......

Rev. Voodoo Rev. Voodoo
25 mar. 2011 21:29:09

cum se pot adăuga câmpuri post_meta la acest formular?

Mohannad Qamara Mohannad Qamara
19 ian. 2012 15:45:18

@MohannadQamara poți folosi următoarele după $pid = wp_insert_post($new_post);-- if( $pid ) { add_post_meta( $pid, 'post_meta_name', 'post meta value' ); }

Jared Jared
19 ian. 2012 16:43:18

@Bainternet cum rămâne cu aplicarea termenilor la o taxonomie specifică pentru tipul de postare personalizat?

Anagio Anagio
16 dec. 2012 10:43:29

@Anagio ia în considerare Punerea unei întrebări noi și referirea la aceasta.

Bainternet Bainternet
16 dec. 2012 13:26:00

@Bainternet voi face asta mâine odată ce pot posta niște cod exemplu ca să arăt că am încercat ceva. Am găsit câteva tutoriale. Dacă nu am noroc, voi posta.

Anagio Anagio
16 dec. 2012 13:29:11
Arată celelalte 8 comentarii
1

S-ar putea să fie mai simplu să folosești un plugin pentru asta.

De asemenea, poți utiliza excelentul plugin Contact Form 7 împreună cu extensia Post My CF7 Form, care îți va permite să salvezi orice formular personalizat într-un post personalizat, inclusiv imagini ca atașamente principale, câmpuri meta personalizate și intrări de tip select/checkbox/radio ca taxonomii.

Pluginul Post My CF7 Form are o funcționalitate bogată care poate fi valorificată pentru a personaliza și ajusta în continuare modul în care formularele tale ar trebui să fie salvate. Există și o secțiune de documentație detaliată.

17 oct. 2016 11:35:46
Comentarii

ar trebui să menționezi că ești creatorul pluginului.

David Guida David Guida
22 iun. 2023 04:54:54