web-dev-qa-db-ja.com

サムネイル付きの前/次の投稿

私は次の/前の投稿に関してもう一つ質問があります。

現時点で私はいくつかの項目で私たちのポートフォリオに取り組んでいます。各アイテムは、タイトル、カテゴリ、注目の画像を含む投稿です。アイテムを閲覧するときには、4次の/前の投稿があります。

次の2と前の2を表示するにはどうすればいいですか?次または前の記事が存在しない場合、前の記事と最後の記事の4つの前の投稿または4つの次の投稿のみを表示するにはどうすればよいですか。

現在私はTwitterのブートストラップCSS/HTMLを使用しています。

<div class="row-fluid tab-footer">

        <div class="span3">



                      <div class="row-fluid none">
                           <div class="span3">THUMBNAIL</div>

                           <div class="span9" ><h2>TITLE</h2>

                           <p><?php
                                foreach((get_the_category()) as $childcat) {
                                if (cat_is_ancestor_of(3, $childcat)) {
                                echo '<a href="'.get_category_link($childcat->cat_ID).'">';
                                 echo $childcat->cat_name . '</a> ';
                                }}
                                ?>
                            </p> 
                      </div>

        </div> 

        <div class="span3 hidden-phone">

                  <div class="row-fluid none">
                       <div class="span3">THUMBNAIL</div>

                       <div class="span9" ><h2>TITLE</h2>

                       <p>CATEGORY</p> 
                  </div>
        </div>

        <div class="span3 hidden-phone">
                  <div class="row-fluid none">
                       <div class="span3">THUMBNAIL</div>

                       <div class="span9" ><h2>TITLE</h2>

                       <p>CATEGORY</p> 
                  </div>
        </div>

        <div class="span3">   
                  <div class="row-fluid none">
                       <div class="span3">THUMBNAIL</div>

                       <div class="span9" ><h2>TITLE</h2>

                       <p>CATEGORY</p> 
                  </div>
        </div>

</div>
2
rwzdoorn

投稿のリストを取得するには、カスタムクエリを送信する必要があります。この例では、カスタム投稿タイプ "project"とカスタム分類法 "sphere"を使用し、現在の球に次のプロジェクトを1つ取得します。ユースケースでは、posts_per_pageを4に増やすことができます。

<?php 
//remember the id and menu_order from current post 
$id=get_the_ID(); 
global $haet_post_order; 
$haet_post_order=$post->menu_order;

//There is only one sphere per project in this example
$custom_terms = get_the_terms($id, 'sphere');
foreach ($custom_terms AS $term) {
    $sphere=$term->slug;
}

function haet_filter_next_post( $where = '' ) {
    global $haet_post_order;
    $where .= ' AND menu_order>'.$haet_post_order;
    return $where;
}

add_filter( 'posts_where', 'haet_filter_next_post' );
$loop = new WP_Query( array( 'post_type' => 'project', 'posts_per_page' => 1,'orderby' => 'menu_order','order' => 'ASC','sphere'=>$sphere ) );
remove_filter( 'posts_where', 'haet_filter_next_post' );

//if there is no next post use the first one
if( !$loop->have_posts() ){
    $loop = new WP_Query( array( 'post_type' => 'project', 'posts_per_page' => 1,'orderby' => 'menu_order','order' => 'ASC','sphere'=>$sphere ) );
}

while ( $loop->have_posts() ) : $loop->the_post();
// place you code here
?>

<?php  endwhile;  ?>

Whileループの中では、 get_the_post_thumbnail() でサムネイルを取得できます。このブログ記事 にさらに数行の説明があります

1
Hannes