Sponsored Link
投稿のループを「get_posts」で取得する場合は以下のようにカスタムループを生成します。
Sponsored Link
get_posts
  $args = array(
    'post_type' => '投稿タイプ',
    'posts_per_page' => 10 // 表示数
  );
  $my_posts = get_posts( $args );
  if ( $my_posts ) {
    echo ' <dl>' . "\n";
    foreach ( $my_posts as $post ) {
      setup_postdata( $post );
      echo ' <dt>' . date('Y.m.d', strtotime($post->post_date)) . '</dt>'."\n";
      echo ' <dd><a href="' . get_permalink() . '">' . get_the_title() . '</a></dd>' . "\n";
    } //endforeach;
    wp_reset_postdata();
    echo ' </dl>' . "\n";
  }
それに対し、「WP_Query」でのカスタムループの生成は以下のように。
WP_Query
  $args = array(
    'post_type' => '投稿タイプ',
    'posts_per_page' => 10 // 表示数
  );
  $my_posts = new WP_Query( $args );
  if ( $my_posts ) {
    echo ' <dl>' . "\n";
    while ( $my_posts->have_posts() ) {
      $my_posts->the_post();
      echo ' <dt>' . date('Y.m.d', strtotime($post->post_date)) . '</dt>'."\n";
      echo ' <dd><a href="' . get_permalink() . '">' . get_the_title() . '</a></dd>' . "\n";
    } //endwhile;
    wp_reset_postdata();
    echo ' </dl>' . "\n";
  }といった感じですね。

![[WordPress]get_postsとWP_Queryでカスタムループを生成するスニペット。](https://webcre8tor.com/wp-content/uploads/2024/09/share.png)