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

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

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

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

RSS

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

WordPress

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

PHP

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

Q&A

解決済

4回答

476閲覧

ワードプレスのrssにて、PHPで呼び出すURL中の"&" を "& "に書き換える。

nao0628

総合スコア10

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

RSS

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

WordPress

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

PHP

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

0グッド

0クリップ

投稿2019/03/13 03:48

編集2019/03/19 07:38

ワードプレスを利用してサイト運営しているおり
そこから「SMARTNEWS」にRSS配信をしているのですが
最近「Jetpack」のCDNを利用しはじめたところ、エラーが出て配信できなくなりました。
以下の部分にエラーが出ています。

media:thumbnail<?php echo $image_url[0]; ?></media:thumbnail>

FEEDの上記スクリプトから下記を吐き出しているのですが

<media:thumbnail url="https://i0.wp.com/hoge.jp/wp-content/uploads/2019/03/abc6cbd7a7e83894954bdca3034f3fde.jpg?fit=633%2C556&ssl=1" />

※上記アドレス一部変更しております。

"&" がエスケープ漏れを引き起こして
SmartFormatファイル中文字列に"&"が含まれていると、
xmlの仕様上、エラーが起こり
"&" は "& " に置き換えれば正常に動作するとの事でした。

下記を
media:thumbnail<?php echo $image_url[0]; ?></media:thumbnail>
どのように変更すれば良いのでしょうか?

どなたかわかる方がいましたら
ご教示、お願い申しげます。

※ちなみにRSSの仕様書は下記です。
▼SmartFormat 仕様書
https://publishers.smartnews.com/ja/smartformat/specification/
▼SmartFormat 仕様書 -- RSS2.0準拠
https://publishers.smartnews.com/ja/smartformat/specification_rss/

※ちなみに下記コードでも同様に"&"が含まれたURLが出てダメでした

<?php echo get_the_post_thumbnail_url($post->ID, 'large');?>

皆様有難うございました。
下記の追加で解決したようです。

<?php $url = get_the_post_thumbnail_url($post->ID, 'large') ?>

media:thumbnail<?php echo htmlentities($url, ENT_XHTML);?> </media:thumbnail>

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

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

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

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

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

guest

回答4

0

ベストアンサー

php

1$url = 'http://example.com/?post_id=10&utm_source=twitter'; 2echo htmlentities($url, ENT_XHTML);

イメージ説明
一応&だけ書き換わったように見えます。

php

1$url = 'https://i0.wp.com/hoge.jp/wp-content/uploads/2019/03/abc6cbd7a7e83894954bdca3034f3fde.jpg?fit=633%2C556&ssl=1'; 2echo htmlentities($url, ENT_XHTML);

イメージ説明

投稿2019/03/13 03:55

編集2019/03/13 04:00
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

nao0628

2019/03/19 06:19

有難うございます。 <media:thumbnail><?php echo htmlentities($url, ENT_XHTML);?>" /></media:thumbnail> としてみましたが駄目でした。 feedで吐き出された表示は下記です。 <media:thumbnail>" /></media:thumbnail>
退会済みユーザー

退会済みユーザー

2019/03/19 06:28

示したサンプルコードをそのまま貼ってどうするよ。 $urlってのはサンプルとして示すために書いた変数名で、質問者さんのコード内で定義しているのかというと・・?
nao0628

2019/03/19 06:54

ご指摘ありがとうございます。 下記を追加してやってみます。 <?php $url = get_the_post_thumbnail_url($post->ID, 'large') ?> <media:thumbnail><?php echo htmlentities($url, ENT_XHTML);?> </media:thumbnail>
nao0628

2019/03/19 08:01

有難うございます!上記にて解決したようです。
guest

0

urlencodeかstr_replaceでやっちゃえばいいんじゃないでしょうか
だめか?だめですかね?

投稿2019/03/13 03:54

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

guest

0

通常PHPではHTMLエスケープする場合、htmlspecialchars()ですが、WordPressですとesc_html()というものがあるのでそちらを使われたほうがいいかもしれません。

投稿2019/03/13 03:54

m.ts10806

総合スコア80850

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

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

nao0628

2019/03/19 06:01

有難うございます。下記としてみましたが駄目でした。 <media:thumbnail url="<?php echo esc_html($image_url[0]); ?>" /> feedで吐き出された表示は下記です。 <media:thumbnail url="" />
m.ts10806

2019/03/19 07:40

$image_url[0]に何も入ってないのでは。仕様上はエスケープが施された文字列が返ってくるので何もないということは空が渡されているということになります。
nao0628

2019/03/20 06:33

失礼しました!!
m.ts10806

2019/03/20 06:38

ええと、何がでしょうか?
guest

0

以下でどうでしょうか?
htmlspecialchars

PHP

1<?php echo htmlspecialchars($image_url[0]); ?>

投稿2019/03/13 03:52

編集2019/03/13 03:53
mayoi_maimai

総合スコア1583

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

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

nao0628

2019/03/18 15:38

有難うございます。やってみましたがダメでした。。。
nao0628

2019/03/18 15:40

item.media:thumbnail は URL を指定してください。 との表示です。
mayoi_maimai

2019/03/19 00:46

以下ではどうでしょうか?? <?php echo esc_html($image_url[0]); ?>
nao0628

2019/03/19 06:00

有難うございます。下記としてみましたが駄目でした。 <media:thumbnail url="<?php echo esc_html($image_url[0]); ?>" /> feedで吐き出された表示は下記です。 <media:thumbnail url="" /> <media:thumbnail url="" />
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問