【WordPress】ループ内のデータ取得

毎回「あれ?なんだっけ?」ってなるのが面倒なのでまとめておきます。

基本

<!-- 日付 -->
<?php the_time('Y年m月d日'); ?>

<!-- パーマリンク -->
<?php the_permalink(); ?>

<!-- タイトル -->
<?php the_title(); ?>

<!-- 本文 -->
<?php the_content(); ?>

<!-- サムネイル -->
<img src="<?php the_post_thumbnail_url('medium'); ?>" alt="<?php the_title(); ?>">

単一ページ(single)

カテゴリーに関して

<!-- 属するカテゴリー一覧 -->
<div class="cats">
    <?php
    $cats = get_the_category();
    foreach ($cats as $cat) { ?>
        <p class="<?php echo $cat->slug; ?>"><?php echo $cat->name; ?></p>
    <?php } ?>
</div>
<!-- すべてのカテゴリー一覧のうち、属するカテゴリー(の1番目)にactiveをつける -->
<?php $allcats = get_categories();//すべてのカテゴリー配列
				$cats = get_the_category();//属するカテゴリー配列
			?>
				<ul>
					<?php foreach ($allcats as $allcat) {
						$catlink = esc_url(get_category_link($allcat->term_id));//カテゴリーアーカイブURL
						$class = '';
						if ($cats[0]->name == $allcat->name) {//名前(ラベル)が一致したら
							$class = 'class="active"';
						}
					?>
						<li>
							<a href="<?php echo $catlink; ?>" <?php echo $class; ?>>
								<?php echo $allcat->name; ?>
							</a>
						</li>
					<?php } ?>
				</ul>

投稿タイプに関して

<!-- 属する投稿タイプ名 -->
<?php
    $type = get_post_type();//投稿タイプのスラッグ
    $typename = get_post_type_object($type)->label;//投稿タイプの名前(ラベル)
    echo $typename;
    echo get_post_type_archive_link($type);//投稿タイプのアーカイブURL
?>

アーカイブページ

カテゴリー

<!-- 表示中のアーカイブに関する情報 -->
<?php $cat_slug = get_query_var('category_name'); //現在のカテゴリーのスラッグ ?>
<?php $cat_id = get_query_var('cat'); //現在のカテゴリーのid ?>

ループ関係の記事