Wordpress页面ID不是帖子ID

时间:2014-10-19 12:51:45

标签: php wordpress

有没有办法获取当前页面的ID,显示循环中的帖子?我需要在header.php中获取此ID。

<?php
     $query = new WP_Query( array('post_type' => 'portfolio') );
     while ( $query->have_posts() ) : 
          $query->the_post(); 
 ?>                           
 //here I added posts
 <?php endwhile; ?>

2 个答案:

答案 0 :(得分:1)

这取决于您希望获得此ID的位置。如果您试图在已设置为显示帖子的页面上显示它(即,将页面设置为“博客”),则需要使用:

$page_id = get_option( 'page_for_posts' );

如果您想在任何其他页面上使用自定义查询,您可以使用以下命令获取此信息(在自定义循环之前):

global $post;
$page_id = $post->ID;

由于您使用的是WP_Query和the_post(),因此您需要在使用wp_reset_postdata();的自定义循环后重置帖子数据,以便再次使用模板标记。我怀疑你问题出在哪里 - 你用自定义循环劫持模板标签而不是重置它们。

答案 1 :(得分:0)

get_the_ID()方法可能就是您所需要的:

 <?php get_the_ID(); ?> 

http://codex.wordpress.org/Function_Reference/get_the_ID