web-dev-qa-db-fra.com

wp_insert_post () ou similaire pour un type d'article personnalisé

Besoin d'insérer des objets de type publication personnalisés à partir du code. N'a pas été en mesure d'ajouter en utilisant la méthode par défaut

$id = wp_insert_post(array('post_title'=>'random', 'post_type'=>'custom_post'));

crée un poste régulier à la place.

6
rashid

Du Codex :

wp_insert_post () remplira une liste par défaut mais l’utilisateur doit fournir le titre et le contenu, sinon l’écriture de la base de données échoue.

$id = wp_insert_post(array(
  'post_title'=>'random', 
  'post_type'=>'custom_post', 
  'post_content'=>'demo text'
));
13
Ravinder Kumar

Cela peut être fait en utilisant le code suivant: -

Pour entrer un nouveau message pour un type personnalisé

$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',   // if you prefer
   'ping_status' => 'closed',      // if you prefer
));

Après avoir inséré la publication, un identifiant de publication sera renvoyé par la fonction ci-dessus. Maintenant, si vous souhaitez entrer des informations méta postales avec ce message, le fragment de code suivant peut être utilisé.

if ($post_id) {
   // insert post meta
   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);
}
10
TBI Infotech

J'ai découvert que l'utilisation de isset() m'autorisait à utiliser wp_insert_post() sur des types de publication personnalisés:

if ( !isset( $id ) ) { 
    $id = wp_insert_post( $new, true ); 
}
0
Emilio