2017-05-25 15 views
0

こんにちは私はカスタムポストタイプ 'work_fields'を作成しました。これは、別のカスタムポストタイプ 'members'の情報をポストに呼び出します。カスタム投稿タイプ 'work_fields'のタイトルのリストを表示するPAGE TEMPLATEを作成しようとしています。タイトルをクリックすると、 'work_fields'という全体の投稿が 'single-post-container'というdivに表示されますタイトルの下に。今はすべて正常に動作していますが、ページが読み込まれたときにdivの「シングルポストコンテナ」にポストを表示したいとします。 (今のところ、投稿のタイトルだけが表示され、divには何もありません)。ページの読み込み時にカスタム投稿タイプ 'work_fields'の最新の投稿を表示するようにdivを取得するにはどうすればよいですか?これは、カスタムページテンプレートのコードです。どうやってポスト全体を1ページに印刷するのですか?

<div class="row"> 
    <div class="small-12 medium-10 large-offset-1 columns"> 
    <h2><?php the_title(); ?></h2> 
    </div> 
</div> 
<div class="row halfsection"> 
    <div class="small-12 medium-10 large-offset-1 columns"> 
    <div class="category_container"> 
    <?php 
     $args = array('post_type' => 'work_fields',); 
     $query = new WP_Query($args); 
    ?> 

    <?php if ($query->have_posts()) : ?> 
     <?php while ($query->have_posts()) : $query->the_post(); ?> 
     <p class="category_item"><a class="post-link" rel="<?php the_ID(); ?>" href="<?php the_permalink(); ?>"><?php echo get_the_title(); ?></a></p> 
    <?php endwhile; endif; ?> 
    </div> 
    </div> 
</div> 
<div class="row"> 
    <div class="small-12 medium-10 large-offset-1 columns"> 
    <hr> 
    </div> 
</div>      
<div id="single-post-container"> 
    //THIS IS WHERE THE POST CONTENTS SHOWS BUT I WANT THE MOST RECENT POST TO BE HERE ON PAGE LOAD, BEFORE I CLICK ANY OTHER POST//  
</div> 

ありがとう!あなたの助けが大いにありがとう!

答えて

0

ただ、ループの外側のdivを入れて、引数の最近の投稿を取得することにより、二回

$args2 = array('post_type' => 'work_fields', 'orderby' => 'ID', 'order'=> 'DESC' , 'posts_per_page' => 5); 
$query2 = new WP_Query($args2); 
?><div id="single-post-container"><?php 
// The Loop 
if ($query2->have_posts()) { 
    echo '<ul>'; 
    while ($query2->have_posts()) { 
     $query2->the_post(); 
     echo '<li>' . get_the_content() . '</li>'; 
    } 
    echo '</ul>'; 
    /* Restore original Post Data */ 
    wp_reset_postdata(); 
} 
?></div><?php 

をWP_queryを使用しています。最近の5つの投稿の内容が表示されます。

+0

おかげアーメドだが、事は言うあたりの任意の「コンテンツ」を持っているdoesntの私のカスタムポストタイプ「work_field」です。ポストのメタデータを使用してカスタムの単一のポストタイプでまとめられた一連のカスタムフィールドタイプで構成されています。だから私はこのコードを使用する場合は何も私のカスタム投稿の種類のコンテンツボックスがないので、印刷されます。 –

+0

カスタムポストタイプ用に保存されたメタデータを印刷したいですか? –

+0

私のwork_fieldsカスタム投稿は2列で構成されています。左側の列は4つのカスタムフィールドで構成され、右側の列は 'members'というカスタムポストタイプからカスタムフィールドデータをフェッチするループで構成されます。私はその全部のポストを私のページに取り込みたいと思う。私は回避策を見つけました(実際には解決策ではありませんが)。 –

0

divのシングルポストコンテナの上にあるすべての項目が正常に動作している場合、この特定のdivでは、以下のコードを使用して最新の投稿を読み込むことができます。 wp_reset_postdata()を使用して前の投稿データをリセットしてください。

Codexドキュメントhttps://codex.wordpress.org/Function_Reference/wp_get_recent_posts

<?php 
$args = array(
    'numberposts' => 1, 
    'orderby' => 'post_date', 
    'order' => 'DESC', 
    'post_type' => 'work_fields', 
    'post_status' => 'publish', 
    'suppress_filters' => true 
); 

$recent_posts = wp_get_recent_posts($args, ARRAY_A); 
?> 
0

だから、僕は自分のページ上のポストタイプのマークアップを再作成。私はこれを行う良い方法があると確信していますが、時間のためには、少なくともそれを動作させる必要がありました。私もjQueryのonclick関数を使ってみましたが、すべてがロードされた後に最初のタイトルをクリックするだけでしたが、すべてのタイトルをプッシュし続けるエラーがありました。 は、ここで、このコードは、作業を行い、コード

<div class="row"> 
    <div class="small-12 medium-10 large-offset-1 columns"> 
    <h2><?php the_title(); ?></h2> 
    </div> 
</div> 
<div class="row halfsection"> 
    <div class="small-12 medium-10 large-offset-1 columns"> 
    <div class="category_container"> 
     <?php 
     $args = array(
      'post_type' => 'work_fields', 
     ); 
     $query = new WP_Query($args); 
     ?> 
     <?php if ($query->have_posts()) : ?> 
     <?php while ($query->have_posts()) : $query->the_post(); ?> 
     <p class="category_item"><a class="post-link" rel="<?php the_ID(); ?>" href="<?php the_permalink(); ?>"><?php echo get_the_title(); ?></a></p> 
     <?php endwhile; endif; ?> 

    </div> 
    </div> 
</div> 
<div class="row"> 
    <div class="small-12 medium-10 large-offset-1 columns"> 
     <hr> 
    </div> 
</div>     
<div id="single-post-container"> 
    <?php 
    $args2 = array(
    'orderby' => 'post_date', 
    'order' => 'DESC', 
    'post_type' => 'work_fields', 
    'post_status' => 'publish', 
    'posts_per_page' => 1, 
    ); 
    $query2 = new WP_Query($args2); 
     if ($query2->have_posts()) : ?> 
     <?php $post = get_post($_POST['id']); ?> 
     <div id="single-post post-<?php the_ID(); ?>"> 
     <?php while ($query2->have_posts()) : $query2->the_post(); ?> 
      <div class="row section"> 
      <div class="small-12 medium-7 large-offset-1 columns"> 
       <h2><?php the_title(); ?></h2> 
       <h3>소개</h3> 
       <p class="halfsection"><?php the_field('work_fields_intro'); ?></p> 
       <h3>주요서비스</h3> 
       <p class="halfsection"><?php the_field('work_fields_service'); ?></p> 
       <h3>주요실적</h3> 
       <p class="halfsection"><?php the_field('work_fields_accomplishment'); ?></p> 
      </div> 
     <?php endwhile; endif; ?> 
      <div class="small-6 medium-3 large-2 columns large-offset-1 end"> 
       <?php 
       $posts = get_field('team_member'); 
       if($posts): ?> 
       <?php foreach($posts as $post): // variable must be called $post (IMPORTANT) ?> 
       <?php setup_postdata($post); ?> 
       <div class="member_container halfsection"> 
        <div class="member"><?php the_post_thumbnail(); ?></div> 
         <p class="member_name"><?php the_title(); ?></p> 
          <ul class="members_info"> 
           <li><?php the_field('members_position'); ?></li> 
           <li><?php the_field('members_e-mail'); ?></li> 
           <li><?php the_field('members_phone'); ?></li> 
          </ul> 
        </div> 
     <?php endforeach; ?> 
<?php endif; ?> 
       </div> 
      </div> 
      </div> 
     </div> 
関連する問題