備忘録を兼ねて掲載していきます。
コードは基本的にコピペをしてご使用いただけます。
ループ系、カテゴリー系
メインループ
<?php
if (have_posts()) {
while(have_posts()) {
the_post();
?>
<?php }?>
<?php }?>
サブループ
<?php
$args = array(
'post_type' => '○○○',
'posts_per_page' => 10,
);
$the_query = new WP_Query($args);
if ($the_query->have_posts()) {
while ($the_query->have_posts()) {
$the_query->the_post();
?>
<?php } ?>
<?php } ?>
<?php wp_reset_postdata(); ?>
ページネーション付き投稿出力(固定ページ)
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$the_query = new WP_Query(array(
'post_status' => 'publish',
'paged' => $paged,
'posts_per_page' => 2, // 表示件数
'orderby' => 'date',
'order' => 'DESC'
));
if ($the_query->have_posts()) {
while ($the_query->have_posts()) {
$the_query->the_post();
?>
//コンテンツ
<?php } ?>
<?php } ?>
<!-- pagination -->
<div class="pagination">
<?php
if ($the_query->max_num_pages > 1) {
echo paginate_links(array(
'base' => get_pagenum_link(1) . '%_%',
'format' => 'page/%#%/',
'current' => max(1, $paged),
'mid_size' => 1,
'total' => $the_query->max_num_pages
));
}
wp_reset_postdata(); ?>
</div><!-- /pagination -->
投稿に紐づいたカテゴリー表示
<?php
$categories = get_the_category();
foreach ($categories as $category) {
echo $category->name;
}
?>
カスタム投稿に紐づいたターム表示
<?php
$term = get_the_terms($post->ID,'タクソノミースラッグ');
echo $term[0]->name;
?>
カテゴリーすべて取得表示
<?php
$categories = get_categories();
foreach ($categories as $category) {
echo '<li><a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a></li>';
}
?>
ターム一覧
<?php
$all_terms = get_terms('タクソノミー');
foreach ($all_terms as $term) {
echo '<li><a href="' . get_category_link($term->term_id) . '">' . $term->name . '</a></li>';
}
?>
カテゴリー名表示
<?php single_cat_title(); ?>
カテゴリー名表示
<?php the_archive_title(); ?>
カテゴリー名表示
<?php echo get_the_archive_title() ?>
投稿詳細ページ送り
<?php
$prev_post = get_previous_post();
$next_post = get_next_post();
if ($prev_post || $next_post) {
?>
<nav class="page-nav">
<?php if ($prev_post) { ?>
<a href="<?php echo get_permalink($prev_post->ID); ?>" class="page-nav__back">
<span>< 前</span>
</a>
<?php } ?>
<?php if ($next_post) { ?>
<a href="<?php echo get_permalink($next_post->ID); ?>" class="page-nav__next">
<span>次 ></span>
</a>
<?php } ?>
</nav>
<?php } ?>
頻出コード
トップページのURLを取得
<?php echo esc_url( home_url( '/' ) ); ?>
</body>直前に入れる関数
<?php wp_footer(); ?>
</head>直前に入れる関数
<?php wp_head(); ?>
header読み込み
<?php get_header(); ?>
footer読み込み
<?php get_footer(); ?>
CSS、JS、img読み込み(親テーマ)
<?php echo esc_url(get_template_directory_uri()); ?>/
CSS、JS、img読み込み(子テーマ)
<?php echo esc_url(get_stylesheet_directory_uri()); ?>/
タイトル出力
<?php bloginfo( 'name' ); ?>
ショートコード読み込み
<?php echo do_shortcode('[ショートコード]'); ?>
投稿の本文出力
<?php the_content(); ?>
投稿タイトル出力
<?php the_title(); ?>
サムネイル出力
<?php the_post_thumbnail(); ?>
投稿日出力
<?php the_time(get_option('date_format')); ?>
パーマリンク出力
<?php the_permalink(); ?>
記事抜粋(デフォルト110文字)
<?php the_excerpt(); ?>
記事抜粋末尾変更
<?php
function twpp_change_excerpt_more( $more ) {
return ' ...';
}
add_filter( 'excerpt_more', 'twpp_change_excerpt_more' );
?>
記事抜粋文字数変更(PC・SPそれぞれに設定)
<?php
function twpp_change_excerpt_length( $length ) {
return ( wp_is_mobile() ) ? 30 : 150;
}
add_filter( 'excerpt_length', 'twpp_change_excerpt_length', 999 );
?>
別のテンプレートファイル読み込み(template.phpの場合)
<?php get_template_part( 'template' ); ?>
パンくずリスト (最低限の記述)
<?php
function breadcrumb()
{
$home = '<div class="breadcrumb"><li><a href="' . get_bloginfo('url') . '" >TOP > </a></li>';
echo '<ul>';
if (is_front_page()) {
} else if (is_single()) {
echo $home;
the_title('<li>', '</li>');
} else if (is_page()) {
echo $home;
the_title('<li>', '</li>');
} else if (is_search()) {
echo $home;
echo '<li>「' . get_search_query() . '」の検索結果</li>';
} else if (is_404()) {
echo $home;
echo '<li>ページが見つかりません</li>';
}
echo "</ul></div>";
}
add_filter('get_the_archive_title', function ($title) {
if (is_category()) {
$title = single_cat_title('', false);
} elseif (is_tag()) {
$title = single_tag_title('', false);
} elseif (is_month()) {
$title = single_month_title('', false);
}
return $title;
});