web-dev-qa-db-ja.com

アーカイブページのIDを取得する方法

アーカイブページのように扱われる私の製品のためのwoocmerceページがあります。アーカイブページのIDを取得する必要がありますが、$post->IDget_the_id()などを使用している場合は明らかです。そのページの最新投稿のIDを取得します。

1
dcp3450

これが本当のページであるならば、あなたはget_queried_object_id()でその特定のページのIDを得ることができます。これは機能し、それが使用されている特定のページ、シングルページ、カテゴリページ、分類学ページ、タグページ、および著者ページにIDを返します。本当の日時のアーカイブとホームページはではありませんIDを持っています)

次のことができます

$page_id = get_queried_object_id();
echo $page_id;

非常に重要な注意点の1つですが、query_postsはメインのクエリを中断し、上記の機能を中断します。これは不正確なデータにつながります。ですから、query_postsを絶対に使わないようにしてください。

3
Pieter Goosen

あなたは本当にIDを知る必要がありますか、そのために@ PieterGoosensの答えを見ますか、それともあなたが投稿タイプproductアーカイブにいるかどうか知る必要があるだけですか?後者は is_post_type_archive() を使うことで簡単に実現できます。

if ( is_post_type_archive( 'product' ) ) {
     // code
}
2
Nicolai