私は道に迷っています、遅く、私は一晩中グーグルを探しています。私が遭遇している問題はここにあります。私はワードプレスの「ページ」を使って単一のページのウェブサイトを作成しようとしています。私が最初にテーマを設定した方法はex用のいくつかのページテンプレートがあるということです( 'page-contact.php、page-gallery.php、page-map.phpなど')。これらの各ページテンプレートは異なるメタボックスでカスタマイズされており、対応するページテンプレートはそれらのメタボックスを呼び出してページを作成します。この部分は問題ありませんが、個々のページはうまく表示されますが、すべてのページを1つのページにクエリしようとすると、問題が発生します。
これまでのところ、私はすべてのページを表示することはできますが、1つのテンプレートだけを使用しているため、カスタムメタファイルおよびカスタムテンプレートファイルを使用してページが正しく投稿されません。以下のコードを添付しましたが、各ページに適切なテンプレートを表示するためにget_template_part( 'page'、$ template_name_of_page)に変数を呼び出す方法があるかどうか疑問に思います。
<?php get_header(); ?>
<?php
$args = array (
'post_type' => 'page',
'post_parent' => '29',
'orderby' => 'menu_order',
'order' => 'ASC',
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
get_template_part('page', 'countdown');
}
} else {
}
wp_reset_postdata();
?>
<?php get_footer(); ?>
TEMPLATE HIERARCHY
ウェブサイトのランディングページ - すべてのページを引き出して、ここにそれぞれのテンプレートを表示したい
LANDING PAGE - page-home.php(これは上記のコードのセクションを持っています)
さて、私も私が意図していたことをやっているようだと思います。正しい方向を示してくれてありがとう@Milo!以下でわかるように、私はget_page_template_slug()を使いました。ページごとに使用されるテンプレートをフィルタリングするためのstr_replace()。
誰かがこれが実行可能なオプションであることを確認できますか?
$args = array (
'post_type' => 'page',
'post_parent' => '29',
'orderby' => 'menu_order',
'order' => 'ASC',
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
$tn = get_page_template_slug( $post_id );
$Word = array("page-", ".php",' ');
$template = str_replace($Word,'',$tn);
get_template_part('page', $template);
}
} else {
}
さて、あなたはサイト全体のための単一のテンプレートを作ることができ、このコードを使用して異なる<div>
で異なるページコンテンツを呼び出すことができます:
<?php
$page_id = 47;
$page_data = get_page( $page_id );
echo $page_data->post_content ;
?>