ブログ・WordPress

Simplicity2で続きを読むに記事名をつける方法

ブログでよくある、「続きを読む」機能。

Simplicity2では、続きを読むの文字のデフォルトが「続きを読む」となっています。
今回はこの文字を、「『記事名』の続きを読む」というようにしたくて、いじってみました。

カスタマイザーの[レイアウト(全体・リスト)]→[一覧リストのスタイル]が「本文表示」になっている場合のみ有効です。

「続きを読む」の文字の変更方法

親テーマのentry-body.phpを編集します。

  1. WordPressの管理画面にログインします。
  2. [外観]→[テーマの編集]をクリックします。
  3. Simplicityで続きを読むカスタマイズ01
  4. 右側にある親テーマのリンクをクリックして親テーマの編集画面に行きます。
  5. 「この子テーマは親テーマ Simplicity2 のテンプレートを引き継ぎます。」のSimplicity2のところをクリック。
    Simplicityで続きを読むカスタマイズ02

  6. 右側のファイルの一覧からentry-body.phpをクリックします。
  7. entry-contentの設定が書いてあるところを探します。
  8. footerの上あたりにあります。
    Simplicityで続きを読むカスタマイズ03

    ミスった時に元に戻せるように、編集する前に別の場所にコピーしておきます。
  9. the content~の行を、以下のように書きかえます。
  10. the_content("『".get_the_title() ."』の". get_theme_text_read_more()); ?>
  11. ファイルを更新ボタンをクリックします。

解説

あまりPHPもWordPressも詳しくないので、わりと適当。

the_content()はWordPressのテンプレートタグで、現在の投稿の本文を出力します。
かっこの中には、続きを読むのところに表示するテキストを指定できます。

なにもいじってない状態だと、get_theme_text_read_more()が指定されています。

Simplicity2では、続きを読むの文字をカスタマイザーのテーマ内テキストから変更することができるので、get_theme_text_read_moreという処理でカスタマイザーで設定した文字を取得しているようです。

記事名はget_the_title()で取得できます。
the_title_attribute()だと記事名が取れずに空白になってしまったので、get_the_title()を使いました。

get_the_title()で取得した記事の名前と、get_theme_text_read_more()の値をつなげる必要があります。
PHPでは文字の結合は.(ピリオド)です。

ついでに記事名を『』で囲んで、~のという文字も入れました。

文字列を指定する時は””で囲みます。
いっぽう、get_the_title()やget_theme_text_read_moreは文字列ではなく、処理の名前なので””では囲みません。

the_content("『".get_the_title() ."』の". get_theme_text_read_more()); ?>

書き換えた文章は、

  • という文字と
  • get_the_title()という処理から取れる値と
  • 』のという文字と
  • get_theme_text_read_more()という処理から取れる値

をつなげて、the_contentという処理に渡しています。

参考
テンプレートタグ/the content(WordPress Codex日本語版)