🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
WordPress

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

PHP

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

Q&A

解決済

2回答

970閲覧

WordPress function にPHPを追記するとエラーになる

mmkkttkk

総合スコア1

WordPress

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

PHP

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

0グッド

0クリップ

投稿2021/01/27 10:49

https://tanomimasu.com/archives/18332

この記事の

===
Vimeo
左が変更前、右が変更後のページ。上下にあった無駄な余白を削除した。
===

を実現したかったが

===
wp-content/themes/affinger5-child/functions.php ファイルの17行目のエラーのため、PHP コードの変更をロールバックしました。修正し、もう一度保存してください。

syntax error, unexpected '<'
===

このエラーが出る。
ちなみに、17行目はこれです

===
$the_content = preg_replace('/<iframe[^>]+?vimeo.com[^<]+?</iframe>/is', '<div class="vimeo-container"><div class="vimeo">${0}</div></div>', $the_content);
===

全体はこれです

===

//iframeのレスポンシブ対応
function wrap_iframe_in_div($the_content) {
if ( is_singular() ) {
//vimeo動画にラッパーを装着
$the_content = preg_replace('/<iframe[^>]+?vimeo.com[^<]+?</iframe>/is', '<div class="vimeo-container"><div class="vimeo">//iframeのレスポンシブ対応
function wrap_iframe_in_div($the_content) {
if ( is_singular() ) {
//vimeo動画にラッパーを装着
$the_content = preg_replace('/<iframe[^>]+?vimeo.com[^<]+?</iframe>/is', '<div class="vimeo-container"><div class="vimeo">${0}</div></div>', $the_content);
}
return $the_content;
}
add_filter('the_content','wrap_iframe_in_div');</div></div>', $the_content);
}
return $the_content;
}
add_filter('the_content','wrap_iframe_in_div');

===

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

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

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

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

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

CHERRY

2021/01/27 11:04

コピー&ペーストのミスなのかもしれませんが、参考にされたサイトのコードを2回ペースとしていませんか? 質問に記載されているコードを消して、再度参考サイトのコードを使うとどうなりますか?
mmkkttkk

2021/01/27 11:08

こちらになります。 === //iframeのレスポンシブ対応 function wrap_iframe_in_div($the_content) { if ( is_singular() ) { //vimeo動画にラッパーを装着 $the_content = preg_replace('/<iframe[^>]+?vimeo\.com[^<]+?<\/iframe>/is', '<div class="vimeo-container"><div class="vimeo">//iframeのレスポンシブ対応 function wrap_iframe_in_div($the_content) { if ( is_singular() ) { //vimeo動画にラッパーを装着 $the_content = preg_replace('/<iframe[^>]+?vimeo\.com[^<]+?<\/iframe>/is', '<div class="vimeo-container"><div class="vimeo">${0}</div></div>', $the_content); } return $the_content; } add_filter('the_content','wrap_iframe_in_div');</div></div>', $the_content); } return $the_content; } add_filter('the_content','wrap_iframe_in_div');
mmkkttkk

2021/01/27 11:12

かぶっているのかな、と思い 上の部分で同じ文字列のとこまで消してみるとこうなります === //iframeのレスポンシブ対応 function wrap_iframe_in_div($the_content) { if ( is_singular() ) { //vimeo動画にラッパーを装着 $the_content = preg_replace('/<iframe[^>]+?vimeo\.com[^<]+?<\/iframe>/is', '<div class="vimeo-container"><div class="vimeo">${0}</div></div>', $the_content); } return $the_content; } add_filter('the_content','wrap_iframe_in_div');</div></div>', $the_content); } return $the_content; } add_filter('the_content','wrap_iframe_in_div'); === しかし、このエラーがでました === wp-content/themes/affinger5-child/functions.php ファイルの17行目のエラーのため、PHP コードの変更をロールバックしました。修正し、もう一度保存してください。 syntax error, unexpected '<', expecting end of file
KazuhiroHatano

2021/01/27 11:33

質問文のもコメントのも普通にシンタックスエラーですね・・・ WordPressの管理画面でシンタックスハイライトなしでコード直接編集するとか難易度高いので SublimeTextなりAtomなりコードエディタを使って編集して戻す感じでやりましょう
guest

回答2

0

ベストアンサー

元記事に記載されてるコード自体が文法エラー(コピペミスっぽい)ですね。

重複してる箇所を削除してみたところ、文法エラーは出ないようにはなりました。

php

1//iframeのレスポンシブ対応 2function wrap_iframe_in_div($the_content) { 3 if ( is_singular() ) { 4 //vimeo動画にラッパーを装着 5 $the_content = preg_replace('/<iframe[^>]+?vimeo.com[^<]+?</iframe>/is', '<div class="vimeo-container"><div class="vimeo">${0}</div></div>', $the_content); 6} 7return $the_content; 8} 9add_filter('the_content','wrap_iframe_in_div');

2021年1月11日に記事更新されてるようなので、ブログ管理者に訂正依頼した方がよいかもしれません。

投稿2021/01/27 13:58

hiok

総合スコア595

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

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

mmkkttkk

2021/01/28 05:43

ありがとうございます。エラーがでなくなり反映できました。 管理者様にもコメントから報告しておきます。 ただし、反映され、CSSも追記したのに「Vimeo」の上下余白は消えず、おそらくかなりデリケートな問題かと思い、一旦諦めてプラグインで対処しました。
guest

0

https://lsctown.com/wordpress/arve/
こちらのふたつのプラグインを使用したら、上下余白も出なくなりました。

■使用プラグイン
Advanced Responsive Video Embedde
Shortcake

投稿2021/01/28 05:45

mmkkttkk

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問