我对 Wordpress 的模板结构和查询帖子有疑问。
我有我的模板设置,其中(例如)archive-$posttype.php 的构建如下:
get_header();
$args = 'page_id=18'; //Client Uses page
query_posts($args); the_post();
get_template_part( 'sub-header' );
// Reset Query
wp_reset_query();
?>
<div class="content">
<?php get_template_part( 'loop' ); ?>...
我这样做是为了为我的 sub-header.php 文件设置我的默认 $post 变量,该文件打印出该页面的内容:
<div id="subheader">
<h1><?php echo get_post_meta($post->ID, 'header_title', true)?></h1>
<?php echo get_post_meta($post->ID, 'header_description', true)?>...
但是,在 home.php 模板上使用此方法不起作用:
get_header();
$temp_query = $wp_query;
$page_id = 119; //Client Uses page
#$post = get_page( $page_id );
$args = array('page_id' => $page_id);
$post = new WP_Query( $args ); the_post();
get_template_part( 'sub-header' );
wp_reset_postdata();
?>
<div class="content">
<?php get_template_part( 'loop' ); ?>
<?php get_sidebar( 'news' ); ?>
</div><!--.content -->
<?php get_footer(); ?>
我很好奇为什么这适用于一个模板而不是主模板。而且,我是不是走错了路?在大多数情况下与用户所在的当前页面实际相关的子标题模板中的页面内容的正确方法是什么。
谢谢!