web-dev-qa-db-fra.com

créer un article parent à l'aide de wp_insert_post

comment puis-je créer une fonction php où je peux créer une publication dans un type de publication personnalisé également créer un type de publication enfant, j’ai déjà créé un type de publication parent, c.-à-d.

post type "a = car"
post type "b = user"

je veux créer un message dans le type de message personnalisé "a = car", mais aussi ajouter un nouveau message dans le type de message "b = user" à l'aide de wp_insert_post.

c'est le plus proche que j'ai trouvé http://wordpress.org/support/topic/setting-post_parent-during-wp_insert_post

1
user5601

Si je comprends bien, vous souhaitez utiliser wp_insert_post pour créer une publication de type 'voiture' , et lorsque cette publication est créée, utilisez l'identifiant de cette publication. en tant que parent pour une autre publication, mais d'une autre publication tpye: 'utilisateur' .

Cela est possible, mais notez que si un type de message est hiérarchique, vos permaliens seront rompus.

Tout d’abord, vous devez créer 2 tableaux pour le poste 2, bien sûr pour le poste "utilisateur" lors de la première utilisation, vous ne définissez pas le post_parent car vous ne le connaissez toujours pas.

$car = array (
  'post_title' => 'A Car'
  'post_content' => 'This is a beautiful car!'
  'post_type' => 'car'
); 

$user = array(
  'post_title' => 'An User'
  'post_content' => 'Hi, I am the user of the beautiful car'
  'post_type' => 'user'
);

Après cela, vous insérez le premier message (le parent) en utilisant wp_insert_post. Une fois que cette fonction renvoie l'identifiant de la publication que vous venez d'insérer, vous l'utilisez pour insérer la publication enfant, en utilisant cet identifiant sous la forme post_parent.

Vous pouvez écrire une fonction personnalisée:

function create_car_and_user( $car, $user ) {

    if ( empty( $car ) || empty( $user ) ) return false;

    $car_id = wp_insert_post( $car );

    if ( $car_id > 0 ) { // insert was ok

      $user['post_parent'] = $car_id;
      $user_id = wp_insert_post( $user );

      return array( $car_id, $user_id );

    } else {

       return false;

    }

}

Cette fonction accepte comme arguments les 2 tableaux créés auparavant et si tout se passe bien, renvoie un autre tableau de deux éléments, où le premier élément est l'identifiant de la publication voiture qui vient d'être insérée, le deuxième élément est l'identifiant de la publication utilisateur venant d'être insérée.

Si quelque chose ne va pas, la fonction retourne false. Si possible, cette fonction retourne un tableau, où élément firs est car id, et second est false: dans ce cas, l'insertion de la voiture se passe bien, l'insertion de l'utilisateur ne l'est pas.

1
gmazzap