2

新しいWordPressブログ(http://www.adlerr.com)でSubscribe2プラグインを使用しています。私のブログのタイトルは「RoeeAdler'sBlog」です。電子メールを送信するとき、Subscribe2は私のブログのタイトルのアポストロフィをエスケープし、電子メールの件名は次のように受信されます。

[Roee Adler's Blog] Please confirm your request

電子メールの本文は次のとおりです。

Roee Adler's Blog has received a request to 
subscribe for this email address. To complete your 
request please click on the link below:
...

当然のことながら、タイトルと本文にブログ名の「通常の」エスケープされていないバージョンを含めたいと思います。

doctype.comでこの質問をしましたが、成功しませんでした(ここに質問があります)が、回答から、プラグインのPHPコードを変更する必要があることがわかったので、ここで質問したいと思います。

doctypeで受け取った回答に続いて、コードの次のセクションを変更しました。

function substitute($string = '') {
    if ('' == $string) {
        return;
    }
    $string = htmlspecialchars_decode(str_replace("BLOGNAME", get_option('blogname'), $string));
    $string = str_replace("BLOGLINK", get_bloginfo('url'), $string);
    $string = htmlspecialchars_decode(str_replace("TITLE", stripslashes($this->post_title), $string));
    $string = str_replace("PERMALINK", $this->permalink, $string);

htmlspecialchars_decode上記のコードでは、BLOGNAMEとTITLEの両方を生成するためのラッパーを追加しましたが、電子メールの件名と本文にはまだが含まれています'

これを解決するにはどうすればよいですか?

ありがとう

4

2 に答える 2

3

のドキュメントhtmlspecialchars_decodeに従って、に変換するための引数としてENT_QUOTES渡す必要があります。設定してみてください:$quote_style''ENT_QUOTES

function substitute($string = '') {
        if ('' == $string) {
                return;
        }
        $string = htmlspecialchars_decode(str_replace("BLOGNAME", get_option('blogname'), $string), ENT_QUOTES);
        $string = str_replace("BLOGLINK", get_bloginfo('url'), $string);
        $string = htmlspecialchars_decode(str_replace("TITLE", stripslashes($this->post_title), $string), ENT_QUOTES);
        $string = str_replace("PERMALINK", $this->permalink, $string);
于 2009-08-25T20:30:27.653 に答える
0

'WordPressは、ブログタイトルのアポストロフィをデータベースに保存する前に置き換えます。これをオーバーライドする場合は、functions.phpファイルを編集して、次のステートメントを挿入します。

update_option("blogname", "My Blog's Title With Apostrophe");

これにより、タイトルは入力したとおりになります。[設定]メニューで行ったブログタイトルの変更は効果がありません。

于 2013-03-12T06:59:31.187 に答える