私が何か悪いことをしている可能性があります。現在私はメインのブログページとしてindex.php
を使用しています。ブログ用のページ設定があり、それを[設定]で設定します。ブログページIDを取得しようとすると、常に最初の投稿IDが表示されます。通常のループ以外に追加のクエリを実行していません。
自分のコードに投稿IDとページIDが表示されるのはなぜですか。
Index.phpコード:
<?php get_header(); ?>
<?php get_sidebar(); ?>
<?php
echo $post->ID; // First Post ID
echo get_queried_object_id(); // First Post ID
?>
<div id="content" class="blog">
<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post(); ?>
<div <?php post_class('blog-entry') ?> id="post-<?php the_ID(); ?>">
<h1>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">
<?php the_title(); ?>
</a>
</h1>
<small>
by Company <?php the_time('F jS, Y') ?> /
<a href="<?php the_permalink(); ?>/#comments">Share Comment</a>
</small>
<div class="entry">
<?php the_excerpt(); ?>
</div>
<p class="postmetadata">
<span style="text-align: left; float: left;">
<a href="<?php the_permalink(); ?>" title="Read More">Continue Reading »</a>
</span>
</p>
<div class="clear"></div>
</div>
<?php endwhile; ?>
<div id="blogNav">
<span class="prev"><?php previous_posts_link('« Previous Page'); ?></span>
<span class="next"><?php next_posts_link('Next Page »'); ?></span>
</div>
<?php endif; ?>
</div>
<?php get_footer(); ?>
静的フロントページと異なる投稿ページを使用する場合の '投稿ページ' IDは次のとおりです。
get_option( 'page_for_posts' )
ある文脈では:
if( is_home() && get_option( 'page_for_posts' ) ) {
$page_ID = get_option( 'page_for_posts' );
}