ogiori.com

検索中..

All

  • 全カテゴリーをリンク付きリストで表示する。

    👍

    home.php
    <?php
    $categories = get_categories( [
        'orderby'    => 'name',
        'order'      => 'ASC',
        'hide_empty' => true,
    ] );
    ?>
    <ul>
      <?php foreach ( $categories as $category ) : ?>
        <li>
          <a href="<?php echo esc_url( get_category_link( $category->term_id ) ); ?>">
            <?php echo esc_html( $category->name ); ?>
          </a>
        </li>
      <?php endforeach; ?>
    </ul>
    引数の説明 orderby => 'name' はカテゴリーを名前順で取得します。他にも 'count'(投稿数順)、'id'(ID順)、'slug'(スラッグ順)などが指定できます。 order => 'ASC' は昇順(小→大)で並べます。'DESC' にすると降順(大→小)になります。 hide_empty => true は投稿が1件もないカテゴリーを非表示にします。false にすると記事数0のカテゴリーも表示されます。
  • 数値を3桁区切りでフォーマットして出力する。

    👍

    All
    <?php echo number_format(値); ?>
    
    
    数値を3桁区切りでフォーマットして出力します。
  • スラッグからページオブジェクトを取得する。

    👍

    functions.php
    single.php
    page.php
    archive.php
    <?php
    $page = get_page_by_path( 'スラッグ' );
    if ( $page ) {
        echo esc_html( $page->post_title ); // ページタイトルを出力
    }
    ?>
    階層のあるページは 'parent/child' のようにパスで指定できます。 取得できなかった場合は null を返すので、使用前に必ず if ( $page ) などで確認しましょう。 ACFのカスタムフィールドの値をトップページなどで使用したいときに使います。
  • 各ページのURLを出力する。

    👍

    All
    <?php echo esc_url( home_url( 'ページスラッグ' ) ); ?>
    ページスラッグを「/」にすると、トップページ。 aタグのhref属性に使う。
  • テンプレートパーツを読み込む。

    👍

    single.php
    archive.php
    page.php
    <?php get_template_part( 'ファイル名' ); ?>
    任意で作った「〇〇.php」のファイルを呼び出す。 共通で使用するパーツなどをつくって置くと便利。
  • アイキャッチ→本文内画像→代替画像の優先順位で画像を表示する。

    👍

    single.php
    archive.php
    <?php if (has_post_thumbnail()) : ?>
        <!-- アイキャッチ画像 -->
        <?php the_post_thumbnail(); ?>
      <?php else : ?>
        <!-- 本文内の最初の画像 -->
        <?php preg_match('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', get_the_content(), $matches); ?>
    
        <?php if (! empty($matches[1])) : ?>
          <img src="<?php echo esc_url($matches[1]); ?>" alt="<?php the_title_attribute(); ?>" loading="lazy">
        <?php else : ?>
          <!-- 3. 代替画像 -->
          <img src="<?php echo esc_url(get_template_directory_uri() . '/library/images/common/no-image.webp'); ?>" width="564" height="376" alt="" loading="lazy">
      <?php endif;
      endif; ?>
    画像の表示を3段階の優先順位で処理。 アイキャッチ画像が設定されていれば → アイキャッチを表示。 アイキャッチがなく、本文中に <img> タグがあれば → 本文内の最初の画像を表示。 どちらもなければ → 代替画像を表示。
  • アイキャッチ画像があれば表示し、なければ代替画像を表示する。

    👍

    single.php
    single.php
     <?php if (has_post_thumbnail()) : ?>
        <!-- アイキャッチ画像指定されている場合 -->
        <?php the_post_thumbnail(); ?>
      <?php else : ?>
        <!-- アイキャッチ画像指定されていない場合に代替画像を表示 -->
        <img src="<?php echo get_template_directory_uri(); ?>/library/images/common/noimage.webp" width="" height="" alt="画像がありません" loading="lazy">
      <?php endif; ?>
    
    has_post_thumbnail() で各投稿にアイキャッチ画像が設定されているかを確認し、設定されていれば the_post_thumbnail() で表示、設定されていなければ代替画像(noimage.webp)を表示します。
  • 任意の記事一覧を表示する。(サブループ)

    👍

    front-page.php
    page.php
    archive.php
    <?php
    $param = array(
     'posts_per_page' => 3,
     'post_type' => 'スラッグを指定',
    );
    $the_query = new WP_Query($param);
    if ($the_query->have_posts()) : ?>
    
     <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
      <!-- 繰り返したいコード -->
    
     <?php endwhile;
     wp_reset_postdata(); ?>
    
    <?php else : ?>
     <!-- 投稿が無い場合の処理 -->
     <p>投稿がありません。</p>
    <?php endif; ?>
    「'posts_per_page' => 3」表示数の設定。全ての場合は「-1」。 post_type の 'スラッグ' は実際のカスタム投稿タイプのスラッグに置き換える。
  • 投稿の一覧を取得。(メインループ)

    👍

    archive.php
    single.php
    <?php if (have_posts()) : ?>
    
      <?php while (have_posts()) : the_post(); ?>
     <!-- 繰り返したいコード -->
    
      <?php endwhile; ?>
    
    <?php else : ?>
      <!-- 投稿が無い場合の処理 -->
      <p>投稿はありません。</p>
    <?php endif; ?>
    WordPressの基本的なループ構文です。投稿の有無を確認してから処理を行う。 ※ 「single.php 」は一覧表示には使用しませんが、WordPressの公式で推奨されているため記載しています。記述がない場合に問題が発生するケースもあるため、基本的には含めておくことをおすすめします。
  • 投稿ページのURLを出力する。

    👍

    single.php
    page.php
    archive.php
    <?php the_permalink(); ?>
    現在の投稿またはページのURLを直接出力するWordPressのテンプレートタグ。 ループ内での使用が前提。ループ外では正しいURLが取得できない。 記事の詳細ページ用のリンクに使う。