archive.php(date.php、category.php、tag.php)の中でよく使うWordPressのコード
年月日/カテゴリー/タグ見出しの条件分岐
<?php if(is_date()): ?>
<!--年月日アーカイブページの「年」を出力-->
<h2><?php echo get_query_var('year'); ?></h2>
<?php elseif(is_category() || is_tag()): ?>
<!--カテゴリーとタグページで、ターム名を出力-->
<h2><?php echo get_queried_object()->name; ?></h2>
<?php endif; ?>
カテゴリーページの現在のカテゴリー名を表示
※ループ外で使用する必要があります。
<?php single_cat_title(); ?>
現在のカテゴリーページの説明を表示
<?php echo category_description(); ?>
現在のタグページの説明を表示
<?php echo tag_description(); ?>
年別アーカイブリストを表示
・投稿タイプ=投稿(post)/カスタム投稿の場合は(info-en)のように指定
・ 年別(yearly)※月別にしたい場合は「monthly」に変更
・ 件数表示あり(show_post_count=1)
・ 後ろに「年」を入れる(after=年)
<ul class="archive-list">
<?php wp_get_archives('post_type=post&type=yearly&show_post_count=1&after=年'); ?>
</ul>
年別アーカイブリストを表示(セレクトボックス)
・投稿タイプ=投稿(post)/カスタム投稿の場合は(info-en)のように指定
・ 年別(yearly)※月別にしたい場合は「monthly」に変更
・ 後ろに「年」を入れる(after=年)
<select name="archive-dropdownlist" onchange="document.location.href=this.options[this.selectedIndex].value;">
<option disabled selected value>アーカイブ</option>
<?php wp_get_archives('post_type=post&type=yearly&format=option&after=年'); ?>
</select>
カテゴリーリストを表示
・カテゴリー一覧=タイトルなし(title_li=)
<ul class="archive-list">
<?php wp_list_categories('title_li='); ?>
</ul>
・件数表示あり(show_count=1)
<ul class="archive-list">
<?php wp_list_categories('title_li=&show_count=1'); ?>
</ul>
・一部のカテゴリーのみ表示(include=「ID1」,「ID2」)
<?php wp_list_categories('title_li&include=1,7'); ?>
・一部のカテゴリーを非表示(exclude=「ID1」,「ID2」)
<?php wp_list_categories('title_li&exclude=3,15'); ?>
タグクラウドを表示
・登録されているタグをulタグで表示
<?php wp_tag_cloud('format=list'); ?>
・一部のタグのみ表示(include=「ID1」,「ID2」)
<?php wp_tag_cloud('include=1,7'); ?>
・一部のタグを非表示(exclude=「ID1」,「ID2」)
<?php wp_tag_cloud('exclude=2,8'); ?>
「投稿」記事一覧をページネーション付きで表示(プラグイン使用)
※この例では、ページネーションを出力するプラグイン「WP-PageNavi」を使用しています。
<?php if(have_posts()): ?>
<div class="article-list">
<?php while(have_posts()): the_post(); ?>
<article>
<a href="<?php the_permalink(); ?>">
<figure class="img-block">
<?php if(has_post_thumbnail()): ?>
<?php the_post_thumbnail('thumbnail'); ?>
<?php else: ?>
<img src="<?php echo get_stylesheet_directory_uri()?>/img/comingsoon.jpg" alt="comingsoon">
<?php endif; ?>
</figure>
<div class="txt-block">
<time datetime="<?php the_time('Y-m-d'); ?>" class="date"><?php the_time(get_option('date_format')); ?></time>
<h3><?php the_title(); ?></h3>
<?php
$cats = get_the_category();
if($cats):
?>
<ul class="post-categories">
<?php foreach($cats as $cat): ?>
<li><?php echo $cat->name; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</div>
</a>
</article>
<?php endwhile;?>
</div>
<?php else: ?>
<p>記事はありません。</p>
<?php endif; ?>
<?php wp_pagenavi(); ?>
「投稿」記事一覧をページネーション付きで表示(プラグイン無し)
<?php if(have_posts()): ?>
<div class="article-list">
<?php while(have_posts()): the_post(); ?>
<article>
<a href="<?php the_permalink(); ?>">
<figure class="img-block">
<?php if(has_post_thumbnail()): ?>
<?php the_post_thumbnail('thumbnail'); ?>
<?php else: ?>
<img src="<?php echo get_stylesheet_directory_uri()?>/img/comingsoon.jpg" alt="comingsoon">
<?php endif; ?>
</figure>
<div class="txt-block">
<time datetime="<?php the_time('Y-m-d'); ?>" class="date"><?php the_time(get_option('date_format')); ?></time>
<h3><?php the_title(); ?></h3>
<?php
$cats = get_the_category();
if($cats):
?>
<ul class="post-categories">
<?php foreach($cats as $cat): ?>
<li><?php echo $cat->name; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</div>
</a>
</article>
<?php endwhile;?>
</div>
<?php else: ?>
<p>記事はありません。</p>
<?php endif; ?>
<?php
$args = array(
'mid_size' => 2, // 現在のページの左右にそれぞれ表示するページ番号の数
'prev_text' => 'Prev', // 投稿の前のセットへのリンクテキスト
'next_text' => 'Next', // 投稿の次のセットへのリンクテキスト
'type' => 'list', // ul を使ったリストタグで出力したい場合に指定する
);
echo paginate_links( $args );
?>
本文の抜粋を文字数制限&HTMLタグや半角スペースを削除した状態で表示
※120文字で本文の抜粋を表示
<?php
if(mb_strlen($post->post_content, 'UTF-8') > 120):
$content = str_replace('\n', '', mb_substr(strip_tags($post->post_content), 0, 120, 'UTF-8'));
echo $content .'…';
else:
echo str_replace('\n', '', strip_tags($post->post_content));
endif;
?>
記事に一定期間Newマークを表示
<?php
$days = 7; // 表示させたい日数
$published_time = get_post_time();
$today = wp_date('U');
$show_threshold = $today - $days * 86400; // 24時間=86400秒
if($published_time > $show_threshold):
echo '<span class="new">New</span>'; // 表示させたいコード
endif;
?>
パンくずリストを表示
※この例では、パンくずリストを出力するプラグイン「Breadcrumb NavXT」を使っています。
<ol>
<?php if(function_exists('bcn_display')) bcn_display_list(); ?>
</ol>
最低限覚えておきたい
WordPressのコード
-
PHPの条件分岐の基本
-
WordPressで使う代表的な条件分岐
-
投稿の出力でよく使うWordPressのコード
-
テンプレートパーツの読み込みで使うWordPressのコード
-
header.phpの中でよく使うWordPressのコード
-
footer.phpの中でよく使うWordPressのコード
-
sidebar.phpの中でよく使うWordPressのコード
-
functions.phpの中でよく使うコード
-
front-page.phpでよく使うWordPressのコード
-
page.phpの中でよく使うWordPressのコード
-
single.phpの中でよく使うWordPressのコード
-
archive-カスタム投稿名.phpの中でよく使うWordPressのコード
-
taxonomy.phpの中でよく使うWordPressのコード
-
single-カスタム投稿名.phpの中でよく使うWordPressのコード
-
search.phpの中でよく使うWordPressのコード
-
プラグイン出力でよく使うコード