タイトルの出力

wordpressのタイトルのイラスト

the_title という関数で、投稿(または固定ページ)のタイトルを出力することができます。

記事のタイトルを出力

投稿(または固定ページ)のタイトルを出力するには、the_title という関数(テンプレートタグ)を使います。

一般的には、WordPressループ内に以下のように書くことが多く、このようにすることで投稿(固定ページ)のタイトルが出力されます。

PHP

<?php the_title(); ?>

タイトルの前後を文字列で囲む場合、記事のタイトルを hタグで囲み以下のように一覧表示することができます。

PHP

<?php if ( have_posts() ) : ?>
  <?php while ( have_posts() ) : the_post(); ?>
      <h3><?php the_title(); ?></h3>
  <?php endwhile;?>
<?php endif; ?>

HTMLを削除したタイトルの出力

タイトルに br タグや span 等HTMLタグの記述ができますが、サイトの title や任意の場所で出力時にタグに準じた出力をしない場合、php the_title_attribute という関数(テンプレートタグ)を使います。

PHP

<?php the_title_attribute(); ?>

特定の記事のカテゴリのタイトルをリスト出力

特定のカテゴリーの新しいエントリー、新着記事のタイトルをリンク付きでリスト表示する方法です。

以下のサンプルは wordpressblog のカテゴリーの記述ですが、この箇所を表示させたいカテゴリーのslugに置き換えて表示させます。

PHP

<?php
$term_id = get_category_by_slug('wordpressblog')->term_id;
$posts = get_posts('category='.$term_id.'&numberposts=0');
global $post;
?>
<h2><?php echo get_the_category_by_ID($term_id) ?></h2>
<ul>
<?php if($posts): foreach($posts as $post): setup_postdata($post); ?>
<li><?php the_title(); ?></li>
<?php endforeach; else : ?>
<li>Not Found</li>
<?php endif;?>
</ul>
<?php wp_reset_postdata(); ?>

リンク付きサムネイルとタイトルの全件表示

最新の投稿記事をリンク付きでアイキャッチ画像とタイトルを全件で表示する方法です。

posts_per_page' => -1 の数値を変更することで、全件表示から任意の件数の表示に変更することが可能で、CSSで.thumbnailと.titleを整える必要があります。

PHP

<ul>
<?php
$args = array( 'posts_per_page' => -1 );
$lastposts = get_posts( $args );
foreach ( $lastposts as $post ) :
  setup_postdata( $post ); ?>
<li>
    <div class="thumbmail">
      <?php if(has_post_thumbnail()) { ?><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php echo the_post_thumbnail(); ?></a> <?php } ?>
    </div>
    <div class="title"><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a>
    </div>
</li>
<?php endforeach; 
wp_reset_postdata(); ?>
</ul>

文字数を制限してタイトルを出力

全角で最大40文字を上限として、超える分は非表示にして文末を「…」に変える形で、上限に達しない場合はそのまま出力します。

PHP

<?php
    $limit = 40; // 表示させる文字数の上限
    if (mb_strlen($post->post_title)>$limit) {
      $title= mb_substr($post->post_title,0,$limit) ; echo $title. '…' ;
    } else {
      echo $post->post_title;
    }
  ?>