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(); ?>
これがホーム テンプレートではなく 1 つのテンプレートで機能する理由に興味があります。そして、私はこれを間違った方法で行っていますか? ほとんどの場合、ユーザーが現在いる現在のページに実際に関連するサブヘッダー テンプレートにページ コンテンツを含める正しい方法は何ですか。
ありがとう!