WordPressで使いがちなコードまとめ

***** ヘッダー読み込み
<?php get_header(); ?>
***** WordPressのヘッダー読み込み
<?php wp_head(); ?>
***** トップページのURL
<?php echo get_home_url('url'); ?>
***** テンプレート化した.phpファイルの読み込み
<?php get_template_part('inc/header'); ?>
***** テーマディレクトリのパス
<img src="<?php echo get_template_directory_uri(); ?>/assets/img/home/mv.jpg" class="m-fit m-sm-hide-inline">
***** ドメイントップからのパスを取得例
<?php include( $_SERVER['DOCUMENT_ROOT'] . '/common/header.html'); ?>
***** ページタイトル
<?php the_title(); ?>
***** metaタグのtitle用
<?php
global $page, $paged;
if(is_front_page()):
bloginfo('name');
elseif(is_single()):
wp_title('|',true,'right');
bloginfo('name');
elseif(is_page()):
wp_title('|',true,'right');
bloginfo('name');
elseif(is_archive()):
wp_title('|',true,'right');
bloginfo('name');
elseif(is_search()):
wp_title('-',true,'right');
elseif(is_404()):
echo'404 - ';
bloginfo('name');
endif;
if($paged >= 2 || $page >= 2):
echo'-'.sprintf('%sページ',
max($paged,$page));
endif;
?>
***** 表示中記事のURL
<?php the_permalink();?>
***** 新着リストをページに表示する
<?php
$loop_topics = new WP_Query( array( 'post_type' => 'topics', 'posts_per_page' => 10)); ?>
<?php while ( $loop_topics->have_posts() ) : $loop_topics->the_post(); ?>
<ul class="<?php
if ($terms = get_the_terms($post->ID, 'topics_type')) {
foreach ( $terms as $term ) {
echo esc_html($term->slug);
}
}
?>">
<li>
<p class="date<?php
$days = 30; // NEWマークを表示する日数
$now = date_i18n('U'); // 今の時間
$entry = get_the_time('U'); // 投稿日の時間
$term = date('U',($now - $entry)) / 86400;
if( $days > $term ){
echo ' new';
}
?>"><?php the_time('Y/m/d'); ?></p>
<p class="tag">
<?php
if ($terms = get_the_terms($post->ID, 'topics_type')) {
foreach ( $terms as $term ) {
echo esc_html($term->name);
}
}
?>
</p>
</li>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
</ul>
<?php endwhile; ?>
***** 関連記事を表示
<?php
$kanrenpost_no = 6;
$categories = get_the_category( $post->ID );
$category_ID = array();
foreach ( $categories as $category ):
array_push( $category_ID, $category->cat_ID );
endforeach;
$args = array(
'post__not_in' => array( $post->ID ),
'posts_per_page' => $kanrenpost_no,
'category__in' => $category_ID,
'orderby' => 'rand',
);
$st_query = new WP_Query( $args ); ?>
<?php
if ( $st_query->have_posts() ): ?>
<?php
while ( $st_query->have_posts() ) : $st_query->the_post(); ?>
<li class="matchHeight">
<a href="<?php the_permalink() ?>"><p class="image">
<?php if ( has_post_thumbnail() ): // サムネイルを持っているときの処理 ?>
<?php echo get_the_post_thumbnail( $val->ID, array(400,400) ); ?>
<?php else: // サムネイルを持っていないときの処理 ?>
<img src="<?php echo get_template_directory_uri(); ?>/assets/img/no-img.jpg" alt="no image" title="no image" width="400" />
<?php endif; ?>
</p>
<div class="txt">
<h3 class="category-name">
<?php the_title(); ?>
</h3>
</div>
</a>
</li>
<?php endwhile; ?>
<?php else: ?>
<li>関連記事はありませんでした</li>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
***** トップページ記事一覧部分、通常ループ
<?php query_posts('posts_per_page=3');//表示件数を調節する ?>
<?php if(have_posts()): while(have_posts()):the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><p class="image"><?php if ( has_post_thumbnail() ): // サムネイルを持っているときの処理 ?>
<?php the_post_thumbnail( array(400,400) ); ?>
<?php else: // サムネイルを持っていないときの処理 ?>
<img src="<?php echo get_template_directory_uri(); ?>/assets/img/no-img.jpg" alt="no image" title="no image" width="400" />
<?php endif; ?>
</p><div class="txt"><?php $cat = get_the_category(); ?>
<?php $cat = $cat[0]; ?>
<h3 class="genre"><span><?php echo get_cat_name($cat->term_id); ?></span></h3>
<time><?php the_time('Y.m.d'); ?></time>
<p class="text"><?php the_title(); ?></p></div></a></li>
<?php endwhile; endif; ?>
***** 記事詳細ページの記事内容部分
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php the_content(); ?>
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>
***** 前後の記事への移動リンク
<?php
$prev_post = get_previous_post();
if ( !empty( $prev_post ) ): ?>
<li class="prev">
<a href="<?php echo esc_url( get_permalink( $prev_post->ID ) ); ?>"><?php echo $prev_post->post_title; ?></a>
</li>
<?php else : ?>
<li class="prev">
&nbsp;
</li>
<?php endif; ?>
<?php
$next_post = get_next_post();
if ( !empty( $next_post ) ): ?>
<li class="next">
<a href="<?php echo esc_url( get_permalink( $next_post->ID ) ); ?>"><?php echo $next_post->post_title; ?></a>
</li>
<?php else : ?>
<li class="next">
&nbsp;
</li>
<?php endif; ?>
***** パンくずセット
<nav class="breadcrumb">
<ul>
<li><a href="/">ホーム</a></li>
<li><?php $postcat = get_the_category(); ?>
<?php $catid = $postcat[0]->cat_ID; ?>
<?php $allcats = array($catid); ?>
<?php
while(!$catid==0) {
$mycat = get_category($catid);
$catid = $mycat->parent;
array_push($allcats, $catid);
}
array_pop($allcats);
$allcats = array_reverse($allcats);
?>
<?php foreach($allcats as $catid): ?>
<a href="<?php echo get_category_link($catid); ?>"><?php echo get_cat_name($catid); ?></a>
<?php endforeach; ?></li>
<li><?php the_title() ?></li>
</ul>
</nav>
***** ページャー(ページング)
<nav class="paging mb30">
<div>
<?php global $wp_rewrite;
$paginate_base = get_pagenum_link(1);
if(strpos($paginate_base, '?') || ! $wp_rewrite->using_permalinks()){
$paginate_format = '';
$paginate_base = add_query_arg('paged','%#%');
}
else{
$paginate_format = (substr($paginate_base,-1,1) == '/' ? '' : '/') .
user_trailingslashit('page/%#%/','paged');;
$paginate_base .= '%_%';
}
echo paginate_links(array(
'base' => $paginate_base,
'format' => $paginate_format,
'total' => $wp_query->max_num_pages,
'mid_size' => 4,
'current' => ($paged ? $paged : 1),
'prev_text' => '&#8598;',
'next_text' => '&#8599;',
)); ?>
</div>
</nav>
***** カスタム投稿を表示する例(カスタムフィールド)
<?php
$loop_topics = new WP_Query( array( 'post_type' => 'slide', 'posts_per_page' => -1)); ?>
<?php while ( $loop_topics->have_posts() ) : $loop_topics->the_post(); ?>
<li class="altText">
<?php if(post_custom('slide_url')): ?>
<a href="<?php the_field('slide_url'); ?>">
<img src="<?php the_field('slide_pic'); ?>" alt=""/>
</a>
<?php else : ?>
<img src="<?php the_field('slide_pic'); ?>" alt=""/>
<?php endif; ?>
</li>
<?php endwhile; ?>
***** ページかどうかを判定
<?php if (!is_paged()) : ?>
ページじゃない場合
<?php else : ?>
ページの場合
<?php endif; ?>
***** カテゴリーを一覧表示
<?php
// パラメータを指定
//$args = array(
// カテゴリー内の記事数順で指定
// 'orderby' => 'count',
// 降順で指定
//'order' => 'DSC'
//);
$categories = get_categories( $args );
foreach( $categories as $category ){
echo '<li><a href="' . get_category_link( $category->term_id ) . '">' . $category->name . '</a></li>';
}
?>
***** タグに紐づく記事一覧表示
<?php
$tag_posts = get_posts(array(
'post_type' => 'post', // 投稿タイプ
'tag' => 'testtag', // タグをスラッグで指定する場合
'posts_per_page' => 6, // 表示件数
'orderby' => 'date', // 表示順の基準
'order' => 'DESC' // 昇順・降順
));
global $post;
if($tag_posts): foreach($tag_posts as $post): setup_postdata($post); ?>
<a href="<?php the_permalink() ?>"><dl class="rank-box">
<dt class="poprank">
<?php if ( has_post_thumbnail() ): // サムネイルを持っているときの処理 ?>
<?php the_post_thumbnail( array( 100, 100 ) ); ?>
<?php else: // サムネイルを持っていないときの処理 ?>
<img src="<?php echo get_template_directory_uri(); ?>/assets/img/no-img.png" alt="no image" title="no image" />
<?php endif; ?>
</dt>
<dd>
<h5><?php the_title(); ?></h5>
</dd>
</dl></a>
<?php endforeach; endif; wp_reset_postdata(); ?>
***** 同じカテゴリーの関連記事を表示例
<?php
$kanrenpost_no = 5;
$categories = get_the_category( $post->ID );
$category_ID = array();
foreach ( $categories as $category ):
array_push( $category_ID, $category->cat_ID );
endforeach;
$args = array(
'post__not_in' => array( $post->ID ),
'posts_per_page' => $kanrenpost_no,
'category__in' => $category_ID,
'orderby' => 'rand',
);
$st_query = new WP_Query( $args ); ?>
<?php
if ( $st_query->have_posts() ): ?>
<?php
while ( $st_query->have_posts() ) : $st_query->the_post(); ?>
<dl class="entry-list">
<dt><a href="<?php the_permalink() ?>">
<?php if ( has_post_thumbnail() ): // サムネイルを持っているときの処理 ?>
<?php the_post_thumbnail( 'thumbnail' ); ?>
<?php else: // サムネイルを持っていないときの処理 ?>
<img src="<?php echo get_template_directory_uri(); ?>/assets/img/no-img.png" alt="no image" title="no image" width="100" height="100" />
<?php endif; ?>
</a></dt>
<dd>
<h5 class="entry-ttl"><a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a></h5>
<div class="entry-bassui">
<?php the_excerpt(); //抜粋文 ?>
</div>
</dd>
</dl>
<?php endwhile; ?>
<?php else: ?>
<p>関連記事はありませんでした</p>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
***** ページ一覧表示
<ul>
<?php
$pages = wp_list_pages('title_li=&echo=0');
$pages = str_replace('</li>', '</li>', $pages);
echo $pages; ?>
</ul>
*** タクソノミー名一覧
<?php wp_list_categories(array('taxonomy' => 'interview_type','show_count' => 0)); ?>//show_countを1にすると記事数表示
***** カテゴリー名を取得
<?php single_cat_title(); ?>
***** サイドバー読み込み
<?php get_sidebar(); ?>
***** フッター読み込み
<?php get_footer(); ?>
***** WordPressのフッター読み込み
<?php wp_footer(); ?>

\よかったら使ってね/

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)