質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

1回答

1483閲覧

ワードプレスで抜粋文の文字数が変えられない

hino_

総合スコア8

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2018/03/23 04:42

ワードプレスを勉強中です。
WP Multibyte Patchを有効化して、ワードプレスのバージョンも今日ダウンロードしたので最新のはずです。

投稿画面で「抜粋」を設定していなければ[...]と出てくれるのですが、
設定している記事のみ全文表示されてしまいます。

home.phpが投稿の一覧になっており、<?php the_excerpt(); ?>で抜粋文が表示されています。
「ワードプレス 抜粋 文字数」でグーグル検索して、ヒットしたものをたくさん試しましたが、

↓変わらない(抜粋を設定していなくても効かない)
function my_excerpt_length($length) {
return 60;
}
add_filter('excerpt_length', 'my_excerpt_length');

↓変わらない(抜粋を設定していなければ効く)
function custom_excerpt_mblength() {
return 60;
}
add_filter( 'excerpt_mblength', 'custom_excerpt_mblength' );

↓変わらない(抜粋を設定していなければ効く)

<?php echo mb_substr(the_excerpt(), 0, 60); ?>

↓何も表示されない(抜粋を設定していなくても何も表示されない)

<?php echo mb_substr(get_the_excerpt(), 0, 60); ?>

↓syntax errorになるので確認できない
add_filter('the_excerpt', 'my_the_excerpt');
function my_the_excerpt($postContent) {
$postContent = mb_strimwidth($postContent, 0, 60, "…","UTF-8");
return $postContent;
}

もうお手上げです。
どうしたら抜粋の文字数を制限できるのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2018/03/23 04:57

質問文のコードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
hino_

2018/03/23 05:03

すみません、はじめて利用するのでよく分かっていませんでした、今後気をつけます。
kei344

2018/03/23 05:11

ここは「質問への追記・修正の依頼」です。解決済にしても本文を編集することが出来ますので、よろしくお願いします。
guest

回答1

0

ベストアンサー

①functions.phpに下記を記述

php

1/** 2* 文字数制限 3* $str 文字 ,$int カット文字数,$end 語尾の文字 4* @return str 5*/ 6function na_trim_words($str,$int,$end='…'){ 7 $post_content = strip_tags($str); 8 if(mb_strlen($post_content)>$int ) { 9 $post_content = mb_substr($post_content,0,$int); 10 $post_content = str_replace(array("\r", "\n"), '', $post_content).$end; 11 } else { 12 $post_content = str_replace(array("\r", "\n"), '', $post_content); 13 } 14 return $post_content; 15}

②各テンプレートの吐き出したいところに

php

1<php 2$str = get the content(); 3echo na_trim_words($str,60); 4?>

でいけると思います。

投稿2018/03/23 04:53

編集2018/03/23 04:54
holic

総合スコア134

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hino_

2018/03/23 04:59

<php $str = get the content(); echo na_trim_words($str,60); ?> を <?php $str = get_the_excerpt(); echo na_trim_words($str,60); ?> に変えたらできました! 本当に本当に、ありがとうございました。助かりました。
holic

2018/03/23 05:00 編集

解決してよかったです。 お互いに良いwordpress生活を送りましょう(^^)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問