賢威7.0

最新情報リストに表示される抜粋記事の文字数を変更+非表示にする方法:賢威7.0

recent-post-list-exerpt-thumbnail

今回の記事では、WordPressテーマ: 賢威7 のトップページに表示される最新情報リストの抜粋記事を、指定の文字数に制限する方法を紹介したいと思います。

抜粋記事の文字数を制限するにはいくつか方法があるので、今回は

  1. フィルターフックを使って抜粋記事の文字数を制限
  2. 最新情報リストを表示しているコードを編集して、抜粋記事の文字数を制限

という2通りの方法を紹介します。

カスタマイズ前

↓ 賢威7スタンダード版をインストールしたばかりの状態

recent-post-list-before

カスタマイズ後

カスタマイズ 1
↓ 抜粋記事を20文字に制限

recent-list-excerpt-after

カスタマイズ 2
↓ 抜粋記事を非表示に

recent-list-after-3

[ad]

方法 1. 抜粋記事を20文字に制限

抜粋記事を20文字に制限する1つ目の方法は、フィルターフックを使って抜粋記事の文字数を20文字に制限する方法です。

この方法を使えば、親テーマからだけでなく、子テーマの functions.php から変更が出来るようになるので、親テーマのファイルを編集する必要がありません。カスタマイズは出来る限り子テーマから!という人には持って来いの方法です。

文字数を制限するには、以下のコードを functions.php に追加します。

function custom_excerpt_length( $length ) {
    return 20;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

これで文字数が20文字に制限されました。

recent-list-excerpt-after

1-1. 20文字以外の文字数にするには?

上のコードの return 20 という箇所で抜粋記事の文字数を制限しているので、この20 という箇所を別の数字にすれば、抜粋記事がその文字数に制限されます。

この方法、子テーマからカスタマイズが出来るので便利なんですが、最新情報リストだけでなくサイト全体の抜粋記事の文字数を変更してしまうんですよね。。。

記事一覧とは別の文字数にしたい、という場合には次に紹介する方法がオススメです。

方法2. 抜粋記事を20文字に制限

抜粋記事を20文字にする2つ目の方法は、最新情報リストを表示している関数を編集する方法です。

こちらの方法は、表示する内容を直接編集するので、方法1のように最新情報リスト以外に影響を与えることなく、幅広い対応ができるようになります。

2-1. カスタマイズしやすいように抜粋記事を一旦 非表示にする

まずはカスタマイズしやすいように、一度抜粋記事を表示させている部分をコメントアウトして(// を付けて)非表示にしましょう。

親テーマの(賢威7本体)の functions.php の285行目付近に functions newposts_keni() という関数が見つかると思います。

ここから100行程下にある、380行目付近にある以下のコードが抜粋記事を表示させている関数なので、上のコードの行の先頭に // を付けてコメントアウトします。

$res_data .= "<p class=\"news-cont\" itemprop=\"text\">".get_the_excerpt()."</p>\n";

↓ 編集後

// $res_data .= "<p class=\"news-cont\" itemprop=\"text\">".get_the_excerpt()."</p>\n";

これで抜粋記事が一旦非表示になりました。
(「続きを読む」リンクは表示されたままの状態)

2-2. 抜粋記事の文字数を制限するコードを追加

次に抜粋記事の文字数を制限するコードを追加します。

コメントアウトした行の上に以下のコードを追加すると、、、

$res_data .= "<p class=\"news-cont\" itemprop=\"text\">";
$res_data .= (mb_strlen(get_the_excerpt()) > 20) ? esc_html(mb_substr(get_the_excerpt(),0,20))."..." : esc_html(get_the_excerpt());
$res_data .= "</p>\n";
keni-functions-php-after-1

抜粋記事の文字数が20文字になりました。

recent-list-excerpt-after

2-3. 20文字以外の文字数で表示するには?

抜粋記事として表示する文字数を変更する場合には、先ほどのコードに出てきた 20 という数字を 30 など別の数字にすれば、お好みの文字数に変更することができます。

変更が必要な数字(ここでは20という数字)は2箇所出てくるので、どちらか片方のみの変更にならないように注意して下さい。

3. 抜粋記事を非表示にする方法

最後に抜粋記事を非表示にしましょう。
以下の2行をコメントアウトすると、、、

// $res_data .= "<p class=\"news-cont\" itemprop=\"text\">".get_the_excerpt()."</p>\n";
// $res_data .= "<p class=\"link-next\"><a href=\"".esc_attr(get_permalink())."\">続きを読む</a></p>\n";
keni-functions-php-after-2

抜粋記事が非表示になりました。
今回はこれで完成です!

recent-list-after-3

サムネイルを非表示にする方法やタイトルの文字数を制限する方法は別の記事で紹介しているので、もっと最新情報リストをコンパクトにしたい!という方は、よかったら参考にして下さい。