Hope is a Dream. Dream is a Hope.

非公開ブログは再開しました。

query_postのお勉強と備忘録

_RADME

post()関係を勉強しよう。

20140222

個別記事ページの表示がうまくいかない。

なにか記事までのリンクがちゃんと飛べてない。

なんだーー

ってことで、整理しました。

記事個別ページ表示までのながれ。

page-blog.php

//postsを定義

$`posts` =get_posts('numberposts=-1&category_name=art');

//(注意)postpostsを混同しない

global $post; 
if($posts): foreach($`posts` as $`post`): setup_postdata($post);

//上でsetup_postdata($post)されたpost先へリンク

the_permalink();

single.php

//問題個所
//sidebarを先に呼び出した場合

<?php $myquery_status = array(
    'tax_query' => array(array(
    'taxonomy' => 'post_format',
    'field' => 'slug',
    'terms' => 'post-format-aside'
    ))
); ?>

// 別のpostsを呼び出している

<?php `query_posts`($myquery_status); ?>
<?php if(have_posts()): while(have_posts()): `the_post()`; ?>
<li>
    <?php echo get_the_content(); ?> 
    <span>  <?php echo get_the_date('n月j日 h:i A'); ?></span>
</li>
<?php endwhile; endif; ?>

//postを呼び出す

if(have_posts()): while(have_posts()): the_post();
get_template_part('content', 'single');

content-single.php

//記事本文の表示

the_content()

wordpress内のquery_postの構造

画像

対応

良く分からないが、queryオブジェクト見たいのがあって、基本的にグローバルで管理してるみたい。 だけど、今回のようにsidebarで違うループを回す場合のために、WP_Queryを使って新しいqueryオブジェクトを作って、ループが終わればリセットする。 とできるみたい。

//WP_Queryを使った処理

<?php
$fifi_query = new WP_Query($args);
if ( $fifi_query -> have_posts() ):
    while( $fifi_query -> have_posts()):
        $fifi_query -> the_post();
endwhile;
//処理
endif;
wp_reset_postdata();
 ?>

//通常

<?php
 if(have_posts()): 
    while(have_posts()): 
        the_post();
 ?>
    <?php get_template_part('content', 'single'); ?>

<p class="pagenation">
    <span class="oldpage"><?php previous_post_link(); ?></span>
    <span class="newpage"><?php next_post_link(); ?></span>
</p>

<?php endwhile; endif; ?>

これで成功。 詰まりましたがなんとか。