ブログでよくある、「続きを読む」機能。
Simplicity2では、続きを読むの文字のデフォルトが「続きを読む」となっています。
今回はこの文字を、「『記事名』の続きを読む」というようにしたくて、いじってみました。
カスタマイザーの[レイアウト(全体・リスト)]→[一覧リストのスタイル]が「本文表示」になっている場合のみ有効です。
「続きを読む」の文字の変更方法
親テーマのentry-body.phpを編集します。
- WordPressの管理画面にログインします。
- [外観]→[テーマの編集]をクリックします。
- 右側にある親テーマのリンクをクリックして親テーマの編集画面に行きます。
- 右側のファイルの一覧からentry-body.phpをクリックします。
- entry-contentの設定が書いてあるところを探します。
- the content~の行を、以下のように書きかえます。
- ファイルを更新ボタンをクリックします。
「この子テーマは親テーマ Simplicity2 のテンプレートを引き継ぎます。」のSimplicity2のところをクリック。
footerの上あたりにあります。
the_content("『".get_the_title() ."』の". get_theme_text_read_more()); ?>
解説
あまり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日本語版)