見出し画像

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(); ?>

この記事が気に入ったらサポートをしてみませんか?