![見出し画像](https://assets.st-note.com/production/uploads/images/46817544/rectangle_large_type_2_efaf3db5c601f177470018b26fc337c9.jpg?width=800)
WordPress役立ちコード(保存版)
今まで私が案件や自分のサイトで使ってきたコードを載せます。
自分も見返せるようにしておきたいので、使い方は特には記載しません。
(記述量が多くなってしまう為)
各自調べてみてください!
■カテゴリーすべて取得表示
<?php
$categories = get_categories();
foreach ($categories as $category) {
echo '<li><a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a></li>';
}
?>
■投稿に紐づいたカテゴリー表示
<?php
$categories = get_the_category();
foreach ($categories as $category) {
echo $category->name;
}
?>
■カテゴリー名表示01
<?php single_cat_title(); ?>
■カテゴリー名表示02
<?php the_archive_title(); ?>
■カテゴリー名表示03
<?php echo get_the_archive_title() ?>
■月の取得
<?php echo date('n'); ?>
■投稿詳細(ページ送り)
<?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 } ?>
■ページネーション(固定ページ)
<?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 } ?>
<!-- pagenation -->
<div class="pagenation">
<?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><!-- /pagenation -->
■トップページのURLを取得
<?php echo esc_url( home_url( '/' ) ); ?>
■</body>直前に入れる関数
<?php wp_footer(); ?>
■</head>直前に入れる関数
<?php wp_head(); ?>
■投稿の本文出力
<?php the_content(); ?>
■投稿タイトル出力
<?php the_title(); ?>
■記事抜粋(デフォルト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' ); ?>
■functions.phpに記述
add_action( 'after_setup_theme', function(){
add_theme_support( 'title-tag' );
add_theme_support( 'post-thumbnails' );
add_theme_support('menus');
add_theme_support('widgets');
});
//他のPHPに記述したものを呼び出す
require_once '〇〇〇.php';
■次へ、前へボタン追加
<?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 } ?>
■パンくずリスト
<?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;
});
■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()); ?>/
■scriptを読み込み(functions.phpに記述)
function my_script() {
wp_enqueue_script(
'myscript',
get_template_directory_uri() . '/js/myscript.js',
array(),
false,
true
);
}
add_action( 'wp_enqueue_scripts', 'my_script' );
■タイトル出力
<?php bloginfo( 'name' ); ?>
■ショートコード読み込み
<?php echo do_shortcode('[ショートコード]'); ?>
■トップページか判定
<?php is_front_page(); ?>
■固定ページか判定
<?php is_page(); ?>
■投稿ページか判定
<?php is_single(); ?>
■特定のカスタム投稿タイプのアーカイブページ
<?php if ( is_post_type_archive('news') ) { ?>
投稿タイプが「news」のアーカイブページで行う処理を書く
<?php } ?>
■特定のカスタム投稿の投稿ページのみ
<?php if ( is_singular( 'カスタム投稿名' ) ){ ?>
<?php } ?>
■投稿数をカウント(サブ)
<?php echo $the_query->current_post + 1; ?>
■投稿数をカウント(メイン)
<?php echo $wp_query->current_post + 1; ?>
■サムネイル出力
<?php the_post_thumbnail(); ?>
■投稿日出力
<?php the_time(get_option('date_format')); ?>
■パーマリンク出力
<?php the_permalink(); ?>
■メインループ
<?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(); ?>
この記事が気に入ったらサポートをしてみませんか?