永遠少年症候群

永遠少年症候群

wordpressで記事の1行目だけを抜粋する。

【追記 2017/2/23】行数減らせそうだったのでコードリニューアルしました【/追記終了】

 当サイトのトップページでは最新のブログ記事を3つ、それぞれ1行目を載せています。前は40字分抜粋していましたが、40文字の前にmoreタグを置いたらmoreリンクが表示されないので。
 既に70以上ある記事を手作業で抜粋編集をしていくのは面倒…。でも、どうしても1行分だけの抜粋にしたかったのでfunctions.phpの編集にて模索しました。

 相変わらず付け焼刃知識でいじってみただけなので最善ではないと思う。ブログのトップにアイキャッチの画像あったらちゃんと抜粋できないし。もっといい方法があったら教えてほしいです。
 というわけで、メモ。

前置きの抜粋について

 抜粋の文字数を変える方法については、たくさん解説してるところがあるので、特に解説とかはしない(というかできない)。
テンプレートタグ

functions.phpに以下を追加

 …こう書き加えるというのをどこで調べたのかわからない…たぶん有名サイトのどれかだと思う。

上記のfunctions.phpをいじってみる

 phpの関数に文字列の始まりから検索値までの文字数を数えるという誰得な関数があったので、使ってみようと思いました。
 上記の文字数を決めたところをいじります。
 うまいこと解説できないので試行錯誤の足跡をそのまま載せます。

↑これの数字を変数にする↓


文字列関数?というらしい。

私は1文目は必ず句点で終わるので「。」で検索


グローバル変数から本文を取得することにしました。


句点が含まれなかったので、$count_letterに1足してみた。

 こんな感じで、できました。

【!】句点がないときってあるよね!
 お題のページとか、ブログのポエムカテゴリー記事とか……。うちだけか。

【!】句読点使わない記事の抜粋が40字で切れるようになったんだけど改行されなくて見づらくなった!
 ……お題ページの抜粋が悲惨なことに。

テンプレートをカスタマイズ。

↑を↓に。

改行が半角スペースになってたから、半角スペースを改行タグに置き換えた。
抜粋の後のリンクにまで適用されちゃってたから、戻してる。