A função WordPress é usada para enviar dados programaticamente. Campos padrão a serem enviados para incluir o conteúdo, trecho, título, data e muito mais.
O que não existe documentação é como enviar para um campo personalizado. Eu sei que é possível com a add_post_meta($post_id, $meta_key, $meta_value, $unique);
função.
Mas, como incluir isso na wp_insert_post
função padrão ?
<?php
$my_post = array(
'post_title' => $_SESSION['booking-form-title'],
'post_date' => $_SESSION['cal_startdate'],
'post_content' => 'This is my post.',
'post_status' => 'publish',
'post_type' => 'booking',
);
wp_insert_post( $my_post );
?>
php
custom-field
post-meta
posts
Robin I Knight
fonte
fonte
public
modificador na frente de "function". Se você está incluindo a função de si mesmo, sem colocá-lo em uma classe, você não precisa adicionarpublic
Você pode simplesmente adicionar o 'add_post_meta' após o 'wp_insert_post'
fonte
Eu não acho que você pode usá-lo com wp_insert_post () ;.
O motivo é o motivo pelo qual o WP armazena os dois tipos de dados. As postagens são armazenadas em uma grande tabela monolítica com uma dúzia de colunas diferentes (wp_posts); os campos personalizados são armazenados em uma tabela mais simples de 4 colunas (wp_postmeta) composta principalmente de uma meta-chave e valor, associados a uma postagem.
Consequentemente, você não pode realmente armazenar campos personalizados até ter o ID da postagem.
Tente o seguinte:
Esta publicação do códice ajudou - é quase o oposto do que você está fazendo (ou seja, excluir uma linha do banco de dados após a exclusão): http://codex.wordpress.org/Plugin_API/Action_Reference/delete_post
fonte
Use o
save_post
filtro e chameadd_post_meta
sua função de filtro.fonte
save_post
ação @aendrew está no final da função, possui o ID e o objeto da postagem, a resposta é boa.