投稿IDは一意であることを私は理解しています しかし、それらは永続的なデータIDとして信頼できるですか?
具体的には、移行や他のデータ交換を通じて、投稿IDが変更されないという保証はありますか?
Wordpressは主にMySQLを使って実装されているので、IDはAUTO_INCREMENT
メカニズムによって管理されています。しかし、将来的にこの動作を変更したり、(MongoDBのような)他の永続化実装を使用する可能性があるというWordpress側の注意点はありますか?
投稿IDは一意であることを理解していますが、永続データIDとして信頼できるのでしょうか。
はい。
言われたことすべてを要約すると、答えは次のとおりです。
はい、これに対してIDは信頼できます WordPress XMLエクスポーター/インポーターを使用して、問題の投稿を別のインストールに持ち込まない限り。既存のデータベースを移行し、WordPressを最初からインストールしない限り、IDは変わりません。
PS1:はい、Mark Kaplunが述べているように、IDは変更または再利用できます自分で手動で変更または再利用する場合。
PS2:wp_posts GUIDフィールドは信頼できません元の投稿のURLに依存し、Webサイトの移行時に不注意で新しいURLに置き換えられる可能性があるため、エクスポーター/インポーターを使用すると、明らかにGUIDも変更されます。
答えは「はい」と「いいえ」の両方になります。
Idは1つのサイトに対して一意である必要があります。あなたが知っている、2つのIDがあった場合、コンテンツを提供することはできません。 As WPは投稿やページにコンテンツを提供するためにidを使います。 WordPressループはこのように動作するように設計されています。だから、あなたはあなたのテーマやプラグイン開発のためにそれを使うことができます。これで問題ないでしょう。
しかし、あるWebサイトから別のWebサイトにコンテンツをエクスポートする場合、それはあなたにとって苦痛なことです。新しいWebサイトでは、新しく追加されたコンテンツに対して一意のIDが生成される可能性があります。その場合、idは良い解決策にはなり得ません。
つまり、idの代わりにslugを使うことができます。
P.Sスラッグも変更することができます。しかし、あるWebサイトから別のWebサイトにコンテンツをインポートしても、自動的に変更されることはありません。
お役に立てれば。サビル
投稿IDは必ずしも一意ではありません。参考文献あなたがリンクした記事に対する私の答え: https://wordpress.stackexchange.com/a/209832/71131
Wordpressマルチサイトネットワーク内では、id
は一意ではありません。あるサイトのブログ投稿は、別のサイトのブログ投稿と同じIDを持つことができます。おそらく各サイトが別々のデータベース/テーブルを持っているので。 (プラグイン内、またはWordpressインストールと通信するサードパーティサービス内で)Wordpress id
を使用してWordpress Multisite上の特定のブログ記事を参照している場合、これは問題になります。ネットワーク。
したがって、代わりに$post->guid
を使用することをお勧めします。これはWordpressがGlobal Unique Identifierとして専用に使用しているものです。これを認識してくれた@Mark Kaplunに感謝します。 NB:それが機能するためにはguidはより低いキャップでなければなりません。
@guidodは、 "Webサイトが移行されたときに誤って新しいURLに置き換えられる可能性がある" の危険性について言及しました。誰かがすべてのURIに対して検索/置換を行い、 GUIDのURI部分も同様です。ただし、GUIDの中で何も変更すべきではありません。このリスクを軽減するために、$post->ID
をバックアップとして保存することもできます。 Wordpressインストールでブログ投稿にアクセスしてそれを参照しているサードパーティのサービスがguidに基づいて投稿を見つけられない場合は、投稿のIDを試すことができます(ただし、適切なブログ/サイトに基づいてコンテキスト化してください)。マルチサイトインストールの場合は.