ogiori.com

検索中..

WordPress

  • アイキャッチ→本文内画像→代替画像の優先順位で画像を表示する。

    👍

    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が取得できない。 記事の詳細ページ用のリンクに使う。
  • 投稿の公開日時表示する。

    👍

    single.php
    page.php
    archive.php
    <time datetime="<?php the_time('c'); ?>" class="">
       <?php the_time('Y.m.d'); ?>
    </time>
    現在の投稿の公開日時を指定したフォーマットで出力するWordPressのテンプレートタグ。 ループ内であればほぼすべてのテンプレートファイルで使用可能。 「('Y.m.d')」で出力する形式を変更できる。 ('Y.m.d') → 2026.01.01 ('Y年m月d日') → 2026年01月01日
  • ディレクトリURLを取得・出力する。

    👍

    functons.php
    header.php
    footer.php
    single.php
    page.php
    <?php echo get_template_directory_uri(); ?>
    サイトURLが「https://sample.com」だった場合、「https://sample.com/wp-content/themes/テーマ名」を取得する。 画像や、内部のファイルを読み込むときに使う。
  • the_title()を変数に格納する。

    👍

    single.php
    page.php
    archive.php
    <?php get_the_title(); ?>
    <?php the_title(); ?>の出力はしないバージョン。 タイトルを変数に格納したいときなどに使用する。
  • 現在の投稿・ページのタイトルを表示する。

    👍

    single.php
    page.php
    archive.php
    <?php the_title(); ?>
    ・現在の投稿またはページのタイトルをHTMLに直接出力する。 ・ループ内での使用が前提です。ループ外で使うと正しいタイトルが取得できません。 ・タイトルにHTMLタグが含まれる場合、そのまま出力されます。属性値などに使う場合はエスケープが必要。