WordPressでよく忘れる関数とかフックとか
任意にget_postで取得した$postの設定
任意にget_post($post_id)などで持ってきた場合は、the_content()とかループ内での関数がつかえないので、setup_postdata($post);を行う必要がある。
$post_id = (int)$_GET['p'];
$post = get_post( $post_id );
setup_postdata($post);
記事取得からリスト
<?php
$args = array(
'cat' => 1,
'posts_per_page' => 5
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post();
//ここにループするテンプレート
endwhile;
endif;
wp_reset_postdata();
?>
<ul>
<?php
$query = new WP_Query(array('posts_per_page' => 6,'post_status'=>'publish','category_name'=>'event'));
$posts = $query->get_posts();
foreach($posts as $key => $post){
$cat = get_the_category($post->ID);
if(!empty($cat[1])){
$cat = array(
'name' =>$cat[1]->name,
'slug' =>$cat[1]->slug
);
}else{
$cat = array(
'name' =>'',
'slug' =>''
);
}
?>
<li>
<a href="<?php the_permalink() ?>">
<span class="date"><?php the_time('Y-m-d'); ?></span>
<span class="category cat-<?php echo $cat['slug'] ?>"><?php echo $cat['name']; ?></span>
<span class="body"><?php the_title(); ?></span>
</a>
</li>
<?php
}
wp_reset_query();
?>
</ul>
カスタム投稿タイプのカテゴリでの絞込
<ul>
<?php
$args = array(
'post_type'=>'product',
'posts_per_page' => -1,
'post_status'=>'publish',
'tax_query' => array(
array(
'taxonomy' => 'product_category',
'field' => 'slug',
'terms' => 'heart',
),
)
);
$query = new WP_Query($args);
$posts = $query->get_posts();
echo "<pre>".print_r($posts,true)."</pre>";exit;
foreach($posts as $key => $post){
?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php
}
wp_reset_query();
?>
</ul>
コメントを残す