Publicarea programatică a unei postări (tip personalizat de postare) cu câmpuri personalizate

25 dec. 2012, 09:43:22
Vizualizări: 28.5K
Voturi: 23

Am un tip personalizat de postare 'Participant' cu multe câmpuri personalizate. De asemenea, am un formular cu câmpuri de introducere corespunzătoare pentru ca utilizatorul să le completeze. Când acesta trimite formularul, vreau să se genereze o nouă postare cu fiecare câmp personalizat conținând valoarea aleasă de utilizator.

Este posibil acest lucru și dacă da, cum?

0
Toate răspunsurile la întrebare 3
5
45

Folosește wp_insert_post() și add_post_meta(), astfel:

// inserează postarea și setează categoria
$post_id = wp_insert_post(array (
    'post_type' => 'your_post_type',
    'post_title' => $your_title,
    'post_content' => $your_content,
    'post_status' => 'publish',
    'comment_status' => 'closed',   // dacă preferi
    'ping_status' => 'closed',      // dacă preferi
));

if ($post_id) {
    // inserează metadatele postării
    add_post_meta($post_id, '_your_custom_1', $custom1);
    add_post_meta($post_id, '_your_custom_2', $custom2);
    add_post_meta($post_id, '_your_custom_3', $custom3);
}
25 dec. 2012 10:32:01
Comentarii

Funcționează perfect chiar și pe WordPress 4.4.2 :) !

jave.web jave.web
11 apr. 2016 09:12:50

în zilele noastre, poți adăuga simplu câmpuri meta prin cheia meta_input în wp_insert_post: 'meta_input' => ['_your_custom_1' => $custom1, '_your_custom_2' => custom2]

Andreas Andreas
21 mai 2019 14:08:37

Bun punct @Andreas, sugerez să adaugi asta ca un răspuns nou și să înceapă să primească voturi. Ar trebui să fie răspunsul corect acum.

webaware webaware
22 mai 2019 01:48:17

Mulțumesc @webaware :)

Andreas Andreas
23 mai 2019 02:58:14

Funcționează perfect chiar și pe WordPress 5.1 :) !

I am the Most Stupid Person I am the Most Stupid Person
6 iun. 2019 07:43:36
0
14

Pe lângă răspunsul excelent al lui @webaware de mai sus, acest lucru poate fi gestionat începând cu WordPress 4.4.0 în întregime prin apelul wp_insert_post:

$post_id = wp_insert_post(array (
    'post_content' => $content,
    'post_title' => $title,
    'post_type' => 'your_custom_post_type',
    'post_status' => 'publish',

    // un simplu array cheie / valoare
    'meta_input' => array(
        'your_custom_key1' => 'your_custom_value1',
        'your_custom_key2' => 'your_custom_value2'
        // și așa mai departe ;)
    )
));

if ($post_id) {
    // a funcționat :)
}

23 mai 2019 03:04:33
1

Acest lucru poate fi realizat destul de ușor folosind plugin-ul Gravity Forms. Puteți crea un formular care completează un Tip Personalizat de Postare (Custom Post Type) în backend. Acest post poate fi setat să apară ca draft sau ca publicat. Nu există probleme în adăugarea de câmpuri personalizate. În cazul meu, l-am folosit pentru a colecta recomandări de la clienți.

26 dec. 2012 20:08:59
Comentarii

Îmi place această soluție, mai ales dacă o livrezi unui client care dorește să gestioneze singur formularul.

webaware webaware
27 dec. 2012 01:42:46