web-dev-qa-db-fra.com

Comment attribuer un identifiant spécifique à la création?

Je migre du contenu d'un site existant vers wordpress. L'ancien site comporte des liens croisés que j'aimerais conserver dans le nouveau site. Je peux convertir les anciens liens en liens wordpress format (basé sur post-id), mais pour ce faire, je dois attribuer aux messages leurs propres identifiants lors de la migration. Y a-t-il un moyen de faire ça?

L'ancien site n'est PAS wordpress ...

1
hannit cohen

Oui, utilisez le champ "import_id" dans la publication lorsque vous appelez wp_insert_post.

Ceci est traité comme un ID "suggéré" pour le post qui sera utilisé si aucun post avec cet ID n'existe déjà.

$post = array(
'post_title'=>'whatever',
'post_content'=>'whatever',
'import_id'=>123
);
wp_insert_post($post);
10
Otto

Voulez-vous dire que l'ancien site utilisait des permaliens "moches"? http://example.com/?p=N

Je ne suis pas tout à fait sûr des mécanismes d'importation, mais en général, la fonction WordPress wp_insert_post() ne permet pas de créer des articles avec un ID spécifique. Une telle entrée est traitée comme une tentative de mise à jour de fichiers existants poste et échoue (je suppose de regarder le code, non testé) si le poste n'existe pas. Voir la réponse d'Otto à propos de import_id que j'ai raté. Ce qui suit représente toujours les cas où les ID ne sont pas numériques ou autrement ne peuvent pas être transférés en douceur vers WP ID.

Mon idée serait de mapper les anciens ids à guid dans WP, puis d'exécuter des remplacements pour les liens dans la base de données.

0
Rarst