TCDが開発・配布しているWordPressテーマ「ZERO」を使用していたら、トップページなどの記事一覧が表示される箇所で末尾に追加される「…」が邪魔に感じたので、非表示にする方法を調べてみました。
デフォルトでは常に表示される
functions.php を確認したところ、記事の冒頭もしくは「抜粋」に設定された文字列の末尾に、380行目で「…」を追加していることがわかりました。
(テーマのバージョンによって多少、行が異なるかもしれません)
// オリジナルの抜粋記事 --------------------------------------------------------------------------------
function new_excerpt($a) {
if(has_excerpt()) {
$base_content = get_the_excerpt();
$base_content = str_replace(array("\r\n", "\r", "\n"), "", $base_content);
$trim_content = mb_substr($base_content, 0, $a ,"utf-8");
} else {
$base_content = get_the_content();
$base_content = preg_replace('!.*? !is', '', $base_content);
$base_content = preg_replace('!.*? !is', '', $base_content);
$base_content = preg_replace('/\[.+\]/','', $base_content);
$base_content = strip_tags($base_content);
$trim_content = mb_substr($base_content, 0, $a,"utf-8");
$trim_content = str_replace(']]>', ']]>', $trim_content);
$trim_content = str_replace(array("\r\n", "\r", "\n" , " "), "", $trim_content);
$trim_content = htmlspecialchars($trim_content);
};
echo $trim_content . '…';
};
テーマファイルを編集すると、テーマが更新された際の対応がややこしくなるので基本的にはやらない方がいいです。
gitなどを利用して差分を管理できる状態でチャレンジするとよいでしょう。
gitなどを利用して差分を管理できる状態でチャレンジするとよいでしょう。
何も表示したくない場合
とにかく「…」をなくすだけなら、trim_contentに何もくっつけなければいいだけなので、簡単です。
echo $trim_content;
別の文字を表示したい場合
「…」を足している部分を書き換えるだけなので、これも簡単です。
echo $trim_content . '(つづく)';
続きがある時だけ表示したい場合
下のコードでは、抜粋した文字列に続きがある時だけ「…」を表示するように調整してみました。
// オリジナルの抜粋記事 --------------------------------------------------------------------------------
function new_excerpt($a) {
if(has_excerpt()) {
$base_content = get_the_excerpt();
$base_content = str_replace(array("\r\n", "\r", "\n"), "", $base_content);
$trim_content = mb_substr($base_content, 0, $a ,"utf-8");
$cutFlg = $trim_content != $base_content;
} else {
$base_content = get_the_content('');//custom@akane
$base_content = preg_replace('!.*? !is', '', $base_content);
$base_content = preg_replace('!.*? !is', '', $base_content);
$base_content = preg_replace('/\[.+\]/','', $base_content);
$base_content = strip_tags($base_content);
$trim_content = mb_substr($base_content, 0, $a,"utf-8");
$cutFlg = $trim_content != $base_content;
$trim_content = str_replace(']]>', ']]>', $trim_content);
$trim_content = str_replace(array("\r\n", "\r", "\n" , " "), "", $trim_content);
$trim_content = htmlspecialchars($trim_content);
};
$add = $cutFlg ? '…' : '';
echo $trim_content.$add;
};
もし「…」を邪魔に感じることがあったら、どれか試してみてくださいな。
この記事へのコメントはありません。