動的メニューを作成し、foreachループでページタイトルを使用してis_pageを実行しています。
<li class="<?= (is_page($tlp->post_title) ? 'active' : '');?>">
</li>
これは、WP adminで実際に作成されたページに対しては正常に機能します。しかし、アーカイブに依存している他の種類の投稿ではうまくいきません。
だから私は「チーム」の投稿タイプとそのデータを使うarchive-team.phpページを持っています。
そのページにいるとき、そのページが現在アクティブかどうかを確認する方法がありません。
私はis_archive()に出くわしましたが、期待どおりにはいきません。アーカイブの場合はそのまま返します。
私もこのメニューを作成するためにページをループしているので、私はブログページをセットアップしておき、そのブログページであればアーカイブを含めるためにデフォルトテンプレートをチェックするだけです。
何か手助け?
投稿、ページ、カスタム投稿タイプをカバーするis_page( $tpl->ID ) || is_single( $tlp->ID )
を使用できます。
アーカイブリンクにはis_post_type_archive( $post_type )
を使います。同じ種類の単一の投稿に対して強調表示する必要がある場合は、|| is_singular( $post_type )
を追加します。