Есть ли способ получить идентификатор текущей страницы, которая показывает записи в цикле? Мне нужно получить этот идентификатор в header.php.
<?php $query = new WP_Query( array('post_type' => 'portfolio') ); while ( $query->have_posts() ) : $query->the_post(); ?> //here I added posts <?php endwhile; ?>
Это зависит от того, где вы хотите получить этот идентификатор. Если вы пытаетесь получить его на странице, которую вы установили для показа сообщений (т. Е. Страницы, заданной как ваш «блог»), вам необходимо использовать:
$page_id = get_option( 'page_for_posts' );
Если вы хотите получить это на любой другой странице, и вы используете пользовательский запрос, вы можете получить это (до своего пользовательского цикла), используя:
global $post; $page_id = $post->ID;
Поскольку вы используете WP_Query и the_post()
, вы захотите сбросить данные после своего настраиваемого цикла с помощью wp_reset_postdata();
снова использовать теги шаблонов. Я подозреваю, что это ваша проблема – вы захватываете теги шаблонов своим настраиваемым циклом и не перезапускаете их.
Метод get_the_ID (), вероятно, вам нужен:
<?php get_the_ID(); ?>