web-dev-qa-db-ja.com

カスタムテンプレートページにループが投稿を表示しない

静的なホームページを使用しているサイトと、Press(press.php)という投稿ページがあります。テンプレートは正しく引き上げられていますが、投稿は表示されません。何かアイディアは?前もって感謝します。

ライブサイト。

press.php

<?php
/*
Template Name: Press
*/
?>


<?php get_header(); ?>

<div id="logo">
    <a href="<?php bloginfo('url'); ?>"><img src="<?php echo get_template_directory_uri(); ?>/img/parlour_side.png" alt="Parlour Salon logo" id="logo" /></a>
</div><!-- end logo -->

<div id="main">
    <div class="content">
        <?php if(have_posts()) : while(have_posts()) : the_post(); ?>
            <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
            <?php the_content('read more...'); ?>
            <p><?php the_date(); ?></p>
        <?php endwhile; ?>
        <?php else : ?>
                <p>I'm not sure what you're looking for.</p>
        <?php endif; ?>
    </div><!-- end content -->

<?php get_footer(); ?>
1
user1255049

press.phpのコピーを作成し、それをhome.phpに名前変更します。

"Press"を選択したページは、下のダッシュボードであなたの投稿の指定ページになります。

[設定]> [閲覧]> [投稿ページ]:[Press]

... Miloによってリストされているように、テンプレート階層の制御下に入ります。

最初のWordPressはhome.phpの存在を探し、もし存在すれば、それがあなたのPressページのテンプレートとして適用されます。

存在しない場合は、デフォルトのindex.phpに移動して同じ処理を行います。

Settings> Reading設定の下に設定されたままですが、事実上あなたのpress.phpはあなたのPressページに関して無用です。

通常、カスタムテーマを作成すると、私のindex.phpは次のようになります。

<?php get_header(); ?>

<?php 

    if(is_home() ) {

    include 'homepage.php';

    } else {

    //do as you wish here... i.e. display normal loop etc

   } 

?>

<?php get_sidebar(); ?>

<?php get_footer(); ?>

例えばhomepage.phpはあなたのカスタムホームページになるでしょう、その結果、あなたは読書でどんな設定も使用する必要はありません。これは、いくつかの方法で実行できるものの非常に単純化された概要にすぎませんが、考えを提示しようとしているだけです。

しかし今のところ、あなたが欲しいのは上記のようにhome.phpを使うことです。

1
userabuser

あるページを投稿用のページに指定すると、そのページは従来の意味での「ページ」ではなくなり、割り当てられているテンプレートは使用されません。

WordPressがこのページのテンプレートを選択する方法を確認するには、 テンプレート階層 を確認してください。

ホームページ表示

home.php

index.php

1
Milo