3

私のサイトには3つのページがあります。それらをhome、page2、page3と呼びましょう。私の「ホームページ」ページは静的なフロントページとして設定されています。私の「page2」はブログページとして設定されています。

私が欲しいのは次のとおりです。

page2に特定のカテゴリ(IDがわかっている)のブログ投稿を表示したい。

page3に特定のカテゴリ(IDがわかっている)のブログ投稿を表示したい。

特定のカテゴリの投稿のみを表示する(または実際には私の場合は2つのカテゴリを除く投稿を表示する)PHPコードは次のとおりです。

<?php query_posts($query_string . '&cat=-3,-8'); ?>
<?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
        <div class="post" id="post-<?php the_ID(); ?>">
        <h3><a href="<?php the_permalink() ?>" rel="bookmark"
            title="Permanent Link to <?php the_title_attribute(); ?>">
            <?php the_title(); ?></a></h3>
        <?php the_excerpt('Read the rest of this entry &raquo;'); ?>
        </div><!-- /.post-->

これで、page.phpに、1つのカテゴリの投稿を表示するための次のコードがあります。

<?php
    // BEGIN IF PAGE is newspaper articles page
    if ( is_page('newspaper') ) {

        //BEGIN POST REGION

        query_posts($query_string . '&cat=8'); ?>
        <?php if (have_posts()) : ?>
            <?php while (have_posts()) : the_post(); ?>
                <div class="post" id="post-<?php the_ID(); ?>">
                <h3><?php the_title(); ?></h3>

                <?php the_content('Read more &raquo;'); ?>


                </div><!-- /.post-->

            <?php endwhile; ?>

        <?php else : ?>

        <?php endif; ?>

        <?php

    } //end if is_page
?>

ただし、新聞のページ(またはこの質問のページ3)には適切な投稿が表示されません。ただし、記事ページ(メインのindex.phpブログページ)では機能します。

編集:私も次のことを試しました(しかし、それは機能しません)。私はこれをindex.phpファイルに入れました:

<?php
if ( is_page('newspaper') || is_home() ) { // START if is home

?>
<?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
        <div class="post" id="post-<?php the_ID(); ?>">
            <h3><a href="<?php the_permalink() ?>" rel="bookmark"
                title="Permanent Link to
                <?php the_title_attribute(); ?>">
                <?php the_title(); ?></a></h3>

            <!--<p><?php the_time('F jS, Y') ?> <?php //the_author() ?></p>-->

            <?php the_excerpt('Read the rest of this entry &raquo;'); ?>


        </div><!-- /.post-->

    <?php endwhile; ?>

<?php else : ?>

<?php endif; ?>

<?php
} //end if is_home() or is_page()
?>

繰り返しますが、これはメインのブログページに投稿を表示しますが、新聞ページには投稿を表示しません...

したがって、質問は単純です(私は思います)。メインのブログページ以外の別のページに投稿を表示するにはどうすればよいですか?

ありがとう!アミット

4

4 に答える 4

3

カテゴリを除外してページを除外し、標準のWordpressループを変更するのではなく、次のような新しいクエリを使用します。

<?php $my_query = new WP_Query('category_name=mycategory&showposts=1'); ?>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<h3><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>">
<?php the_title(); ?></a></h3>
<?php the_excerpt('Read the rest of this entry &raquo;'); ?>
<?php endwhile; ?>

これは、標準のWPループ内で使用でき、ページ/投稿またはページテンプレートで競合することなく複数回使用できます。(php実行を有効にして、ページ/投稿エディターで使用します)。関数リファレンス/WPクエリ«WordPressコーデックス

これは、ページテンプレートを使用してブログ投稿でさまざまなページを作成する場合にもうまく機能します:ページテンプレート«WordPress Codex。ただし、テーマによっては、WPもカテゴリページを使用することを忘れないでください:カテゴリテンプレート«WordPressCodex。

于 2010-08-02T13:26:12.657 に答える
0

ページごとに異なるテンプレートを作成する必要があると思います。このリンクを確認してくださいhttp://codex.wordpress.org/Pages

于 2010-08-02T08:48:06.460 に答える
0

このスレッドは質問に答え、あなたが望むことをしていると思います。 http://wordpress.org/support/topic/show-only-x-category-posts-on-page?replies=9#post-1053767

于 2010-08-02T09:01:20.973 に答える
0

is_page('newspaper')で文字列'newspaper'を使用すると、問題の原因となる可能性があります。スペルを間違えやすい可能性があります。ページIDを使用してみたことがありますか?何かのようなもの

is_page('999')
于 2010-08-02T09:04:39.530 に答える