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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1620閲覧

wordpressでphpを書き換えるとシンタックスエラーが出ます。

dstrykn

総合スコア20

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/12/19 14:47

wordpressのarchive.phpを編集中にエラーが出てしまいます。
phpに詳しい方ご教授お願いします。

やりたいことは記事の抜粋に改行を反映させることです。

こちらのサイトを参考にさせて頂き、function.phpを編集し、archive.phpを編集しています。

https://thk.kanzae.net/net/wordpress/t632/

どのように修正すればいいか教えたいただけたら助かります。
宜しくお願いします。

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

Parse error: syntax error, unexpected 'echo' (T_ECHO), expecting ')' in

###このコードを

<?php if ( $excerpt_length != 0 ) { //Post excerpt $desc = strip_tags(get_the_excerpt()); if (mb_strlen($desc,'utf-8') > $excerpt_length) $desc = mb_substr($desc, 0, $excerpt_length,'utf-8').'...'; echo '<p class="entry-summary">'.$desc.'</p>'; } ?>

###下記のコードに書き換えました。

<?php if ( $excerpt_length != 0 ) { //Post excerpt $desc = strip_tags(echo the_break_excerpt()); if (mb_strlen($desc,'utf-8') > $excerpt_length) $desc = mb_substr($desc, 0, $excerpt_length,'utf-8').'...'; echo '<p class="entry-summary">'.$desc.'</p>'; } ?>

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

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

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

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

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

guest

回答2

0

エラー文にある通り、echoを使用できないところで使っています。

  • echo は関数ではないのでechoの出力を他の関数の引数にすることは出来ません。

PHPマニュアル

具体的には

PHP

1$desc = strip_tags(echo the_break_excerpt());

のechoが使用できないところで使用しています。

the_break_excerpt()は戻り値として文字列を返しているので、
strip_tagsの引数として使えるのでechoを外して

$desc = strip_tags(the_break_excerpt());

とすれば期待した形で動くんじゃないかなと思われます。

とりあえず現在出ているエラーは出なくなると思います。

期待した形になるかどうかは、the_break_excerpt()の仕様(中で何をして、何を返してくれるのか)を参考サイトの方で確認して使い方を検討してみてください。

投稿2017/12/19 18:01

編集2017/12/19 18:23
tanat

総合スコア18709

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

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

dstrykn

2017/12/20 04:27

ご回答ありがとうございました! echoが不要だったのですね。エラーが出なくなりました。ありがとうございます。 ただ他のコードが邪魔をしているのか、やりたかっった抜粋の改行がされないようです。 Space-Monkeyさんのご回答でうまく表示されましたので、こちらをベストアンサーに選ばせて頂きました。 tenantさんのご回答は勉強になり、phpの勉強をしなければという気になりました。ありがとううございました。
guest

0

ベストアンサー

the_break_excerptで抜粋を120文字にして余計なHTMLタグを消すようなので

<?php //if ( $excerpt_length != 0 ) { //Post excerpt //$desc = strip_tags(get_the_excerpt()); //if (mb_strlen($desc,'utf-8') > $excerpt_length) $desc = mb_substr($desc, 0, $excerpt_length,'utf-8').'...'; echo the_break_excerpt(); //} ?>

こうなると思います。
なので表示させたい場所で単純に<?php echo the_break_excerpt(); ?>でいいようです。

投稿2017/12/19 15:42

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

kei344

2017/12/19 18:33 編集

「the_break_excerpt」はデフォルト状態では存在しないので、コードごと持ってくる必要があるのでは。 【Search Results for “the_break_excerpt” | WordPress Developer Resources】 https://developer.wordpress.org/?s=the_break_excerpt 【Wordpressで抜粋を改行したくないので改行しない抜粋にした | Thought is free】 https://thk.kanzae.net/net/wordpress/t632/ 追記:すみません、質問文をきちんと読めていなかったので、意味のないコメントをしました。
dstrykn

2017/12/20 04:30

ご回答ありがとうございました! Space-Monkeyさんのご回答でうまく表示されましたので、ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問