web-dev-qa-db-ja.com

投稿の作成時に特定のIDを割り当てるにはどうすればよいですか?

コンテンツを既存のサイトからワードプレスに移行しています。古いサイトには、新しいサイトで維持したいクロスリンクがあります。古いリンクをwordpress形式のリンク(post-idに基づく)に変換できます)ができますが、そのためには、移行時に投稿に独自のIDを割り当てる必要があります。それを行う ?

古いサイトはNOT wordpressに基づいています...

1
hannit cohen

はい、wp_insert_postを呼び出すときに、投稿の「import_id」フィールドを使用します。

これは、そのIDの投稿が既に存在しない場合に使用される投稿の「推奨」IDとして扱われます。

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

古いサイトが「醜い」パーマリンクを使用したということですか? _http://example.com/?p=N_

インポートの仕組みについては完全にはわかりませんが、一般的にWordPress wp_insert_post()関数では、特定のIDの投稿を作成できません。このような入力は、既存の更新を試行するものとして扱われます投稿が存在しない場合、投稿して失敗します(テストではなく、コードを見てから想定しています)。 import_idに関するOttoの回答を参照してください。以下は、IDが数値でない場合、またはWP IDsにスムーズに転送できない場合の例です。

私のアイデアは、WPで古いidsguidにマップし、データベース内のリンクの置換を実行することです。

0
Rarst