サンプルコード

カテゴリー

「全てのカテゴリー」を取得

$categories = get_categories();
出力例
Array
(
    [0] => WP_Term Object
        (
            [term_id] => 9
            [name] => 投稿カテゴリーA
            [slug] => cat_a
            [term_group] => 0
            [term_taxonomy_id] => 9
            [taxonomy] => category
            [description] => 
            [parent] => 0
            [count] => 3
            [filter] => raw
            [cat_ID] => 9
            [category_count] => 3
            [category_description] => 
            [cat_name] => 投稿カテゴリーA
            [category_nicename] => cat_a
            [category_parent] => 0
        )

    [1] => WP_Term Object
        (
            [term_id] => 10
            [name] => 投稿カテゴリーB
            [slug] => cat_b
            [term_group] => 0
            [term_taxonomy_id] => 10
            [taxonomy] => category
            [description] => 
            [parent] => 0
            [count] => 1
            [filter] => raw
            [cat_ID] => 10
            [category_count] => 1
            [category_description] => 
            [cat_name] => 投稿カテゴリーB
            [category_nicename] => cat_b
            [category_parent] => 0
        )

)

「全てのカテゴリー」をリンク付きでHTML出力

$categories = get_categories();
foreach($categories as $category) {
  echo '<a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a>';
}
出力例 投稿カテゴリーA投稿カテゴリーB

「投稿に設定されているカテゴリー」をリンク付きでHTML出力(1つのみ)

$category = get_the_category()[0];
echo '<a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a>';

「カスタム投稿に設定されているターム」をリンク付きでHTML出力(1つのみ)

$term = get_the_terms($post->ID, 'タクソノミーのスラッグ')[0];
echo '<a href="' . get_term_link($term->slug, 'タクソノミーのスラッグ') . '">' . $term->name . '</a>';

投稿一覧

投稿一覧を取得(メインループ)

<?php
  if (have_posts()) :
    while (have_posts()) : the_post();
      // タイトルなどの投稿情報をこの中に書く
    endwhile;
  else :
    echo '<p>投稿がありません。</p>';
  endif;
?>

投稿一覧を取得(サブループ)

<?php
  $args = array(
    // パラメータ
  );
  $the_query = new WP_Query($args);
  if ($the_query->have_posts()) :
    while ($the_query->have_posts()) : $the_query->the_post();
      // タイトルなどの投稿情報をこの中に書く
    endwhile;
  else :
    echo '<p>投稿がありません。</p>';
  endif;
  wp_reset_postdata();
?>

パラメータの例

$args = array(
  'post_type' => 'news',
  'taxonomy' => 'news-cat',
  'post_status' => 'publish',
  'orderby' => 'date',
  'order' => 'DESC',
  'posts_per_page' => 5,
);

パラメータ一覧(外部サイト)

ページャー

ページャーを取得(get_the_posts_pagination)

メインループで主に使用

<?php
  // デフォルトだとスクリーンリーダー用の要素が出力されるから、preg_replace()で消す
  $pagination = preg_replace(
    '/\<h2 class=\"screen-reader-text\"\>(.*?)\<\/h2\>/',
    '',
    get_the_posts_pagination(array(
      'mid_size' => 2, // 現在のページの左右に表示するページ番号の数
      'prev_text' => '',
      'next_text' => ''
    ))
  );
  if ($pagination) {
    echo '<div class="p-entries__pagination">';
    echo '  <div class="c-pagination">' . $pagination . '</div>';
    echo '</div>';
  }
?>

パラメータ一覧(外部サイト)

ページャーを取得(paginate_links)

サブループで主に使用

<div class="p-entries">
  <?php
    global $max_num_page;
    $paged = get_query_var('paged') ? get_query_var('paged') : 1;
    $args = array(
      // パラメータは任意のものを指定( paged は必須)
      'post_type' => 'post',
      'posts_per_page' => 10,
      'orderby' => 'date',
      'order' => 'DESC',
      'post_status' => 'publish',
      'paged' => $paged,
    );
    $the_query = new WP_Query( $args );
    while ( $the_query->have_posts() ) : $the_query->the_post();
      // タイトルなどの投稿情報をこの中に書く
    endwhile;
    wp_reset_postdata();
  ?>
  </div>

  <?php
    if ($the_query->max_num_pages > 1) {
      echo '<div class="p-entries__pagination">';
      echo paginate_links( array(
        'base' => get_pagenum_link(1).'%_%',
        'format' => 'page/%#%/',
        'current' => max(1, $paged),
        'total' => $the_query->max_num_pages,
        'type' => 'list',
        'mid_size' => '1',
        'prev_text' => '<',
        'next_text' => '>'
      ) );
      echo '</div>';
    }
?>

パラメータ一覧(外部サイト)

投稿情報(記事タイトルなど)

タイトル

<h1><?php the_title(); ?></h1>

パーマリンク

<a href="<?php the_permalink(); ?>">xxxxx</a>

投稿日

<time datetime="<?php echo get_the_date('Y-m-d'); ?>">
  <?php echo get_the_date('Y.m.d'); ?>
</time>

更新日

<time datetime="<?php echo get_the_modified_date('Y-m-d'); ?>">
  <?php echo get_the_modified_date('Y.m.d'); ?>
</time>

投稿日と更新日が違う場合のみどちらも表示(同じなら投稿日のみ表示)

<span>投稿日</span>
<time datetime="<?php echo get_the_date('Y-m-d'); ?>">
  <?php echo get_the_date('Y.m.d'); ?>
</time>
<?php if(get_the_date('Y-m-d') !== get_the_modified_date('Y-m-d')) : ?>
  <span>更新日</span>
  <time datetime="<?php echo get_the_modified_date('Y-m-d'); ?>">
    <?php echo get_the_modified_date('Y.m.d'); ?>
  </time>
<?php endif; ?>

最終更新日時(x日前、x時間前など)

<span>最終更新:
<?php echo human_time_diff( get_the_modified_date('U'), current_time('timestamp') ); ?>
前</span>

サムネイル

<?php
  if (get_the_post_thumbnail()) {
    the_post_thumbnail('full');
  } else {
    echo '<img src="' . home_url('no-image.jpg') . '" alt="">';
  };
?>

投稿本文

<?php if (have_posts()) : ?>
  <?php while (have_posts()) : the_post(); ?>
    <?php the_content(); ?>
  <?php endwhile; ?>
<?php endif; ?>

抜粋

<?php the_excerpt(); ?>

その他の情報を出力するコード(外部リンク)