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

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

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

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

Q&A

解決済

2回答

530閲覧

functions.phpを使ってフィルターで [...] 文字列の変更して「read more」 リンクを作成したいです。

rikataso

総合スコア17

WordPress

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

0グッド

0クリップ

投稿2017/11/28 22:51

###前提・実現したいこと
ここに質問したいことを詳細に書いてください
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
Wordpressで文字数を制限して「...」と「read more」リンクを追加したいです。
add_filter('excerpt_more', '関数名');
がひとつの関数しか実行されません。

###発生している問題・エラーメッセージ

Fatal error: Cannot redeclare new_excerpt_more()
エラーメッセージ

###該当のソースコード ```ここに言語を入力 WordPress ここにご自身が実行したソースコードを書いてください

//フィルターで [...] 文字列の変更・削除
function new_excerpt_more($more){
return '...';
}
add_filter('excerpt_more', 'new_excerpt_more');

//"read more" リンクを作成する
function new_excerpt_more_link( $more ) {
return ' <a class="read-more" href="'. get_permalink( get_the_ID() ) . '">Read More</a>';
}
add_filter( 'excerpt_more', 'new_excerpt_more_link' );
###試したこと
課題に対してアプローチしたことを記載してください
https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/the_excerpt
を参考にしました。

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

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

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

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

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

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

kei344

2017/11/29 02:29

質問文のコードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。また、質問テンプレートの文字列が残ってしまっていますので、不要な部分は削除してください。
guest

回答2

0

ベストアンサー

エラーメッセージは、省略せずに質問に記載してください。(おそらく、エラーメッセージの続き部分にファイル名や何行目の情報が表示されていると思います。 特定されそうなドメイン名やIPアドレス等は、example.com や 10.x.y.z などのように置き換えてください。)

お使いのテーマは、何でしょうか?
何かの子テーマだったりするでしょうか?


質問内で、いろいろ情報が不足していますが、WordPress のテーマで発生するエラーとして推測して記載します。

エラーメッセージ Fatal error: Cannot redeclare new_excerpt_more() の意味は「new_excerpt_more() が、再定義できません」というエラーです。

「再定義できません。」なので、すでに同じ名前の関数がどこかで定義されています。(つまり複数回定義されているので、2回目に定義しようとしてエラーになっている)

お使いのテーマのファイルに function new_excerpt_more()の行が、複数あったりしないでしょうか?

また、WordPress を子テーマで、デザインしている場合、同じ名前の関数が、親テーマで定義されていて、エラーになる場合もあります。

原因追求としては、どこで使われていて、どのようなことをしている関数か調べる方がいいのですが...

とりあえず、エラーを消したいのであれば、

PHP

1//フィルターで [...] 文字列の変更・削除 2function my_new_excerpt_more($more){ 3 return '...'; 4} 5add_filter('excerpt_more', 'my_new_excerpt_more');

のように function の名前を他で使われていない名前に変えて定義してください。

投稿2017/11/29 00:42

編集2017/11/29 00:44
CHERRY

総合スコア25171

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

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

0

ご指摘の通りnew_excerpt_more()を2回書いていました。質問するのはじめてで、フォーマット通り書けてなくて読みづらくてすみません。説明をよく読んで出直します。

投稿2017/12/04 03:33

編集2017/12/04 03:37
rikataso

総合スコア17

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問