web-dev-qa-db-ja.com

ページテンプレートにページコンテンツを表示する方法

私のWordPressサイトで、私はカスタムページテンプレートを作りました。それはカスタムクエリ[using WP_Query()]を含んでいました。そのクエリで、私は完全に特定のカテゴリの投稿を取得することができます。しかし、私はページの内容を照会された投稿と一緒に見せたいのです。

ものは次のようになります。
---------------------------

ページ見出し

ページ内容

問合せ後の見出し

問い合わせ内容
---------------------------

  • 私に何ができる?
11
Mayeenul Islam

私は2つのループを使っています。最初のループはページのコンテンツを表示すること、そして2番目のループはクエリされた投稿のコンテンツを表示することです。必要に応じてコードにコメントしました。 Deckster0WordPressのサポート _を言っていたように、私はループを強調しました、それはthe_content()はWordPressループの中でのみ機能することを意味します。これらのコードを自分のテンプレートに入れています。

<?php
/*
* Template Name: My Template
*/
get_header(); ?>

<div id="container">
    <div id="content" class="pageContent">

    <h1 class="entry-title"><?php the_title(); ?></h1> <!-- Page Title -->
    <?php
    // TO SHOW THE PAGE CONTENTS
    while ( have_posts() ) : the_post(); ?> <!--Because the_content() works only inside a WP Loop -->
        <div class="entry-content-page">
            <?php the_content(); ?> <!-- Page Content -->
        </div><!-- .entry-content-page -->

    <?php
    endwhile; //resetting the page loop
    wp_reset_query(); //resetting the page query
    ?>

    <?php
    // TO SHOW THE POST CONTENTS
    ?>                        
        <?php
        $my_query = new WP_Query( 'cat=1' ); // I used a category id 1 as an example
        ?>
        <?php if ( $my_query->have_posts() ) : ?>
        <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
        <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>

            <h1 class="entry-title"><?php the_title(); ?></h1> <!-- Queried Post Title -->
            <div class="entry-content">
                <?php the_excerpt(); ?> <!-- Queried Post Excerpts -->
            </div><!-- .entry-content -->

        <?php endwhile; //resetting the post loop ?>

        </div><!-- #post-<?php the_ID(); ?> -->

        <?php
        wp_reset_postdata(); //resetting the post query
        endif;
        ?>

    </div><!-- #content -->         
</div><!-- #container -->
20
Mayeenul Islam

これを行うには2つのループが一般的ですが、少し過剰になります。

すべての投稿またはページには、スーパー変数$postが付いています。なぜあなたのget_post_meta()が単純な$post->ID;)で動作するのか疑問に思いましたか?

そのため、リストされた投稿を取得するWP_Query()を開始する前に、$post->ID$post->post_content$post->guidなどを使用して現在のページ/投稿データにアクセスできます。

ループでは、この変数はループした投稿で埋められます。後で保存するには、新しい変数を作成します。

$temp_post = $post

// new WP_Query() + loop here

または電話

wp_reset_query()

リストの後。サイドバーのデータが現在のページ/投稿に対して正しいことを確認するために、とにかく最後の関数を呼び出す必要があります。

0