Domanda

Sto usando Subscribe2 plug-in nel mio nuovo blog WordPress imminente ( http://www.adlerr.com ). titolo del mio blog è "Blog di Roee Adler". Quando si invia una e-mail, Subscribe2 sfugge l'apostrofo nel titolo del mio blog, e l'oggetto del messaggio viene ricevuto come segue:

[Roee Adler's Blog] Please confirm your request

Il corpo di posta elettronica è:

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

Vorrei naturalmente piacerebbe avere la "normale" versione non-sfuggito il mio nome del blog nel titolo e nel corpo.

Ho fatto questa domanda su doctype.com senza successo ( ecco la domanda ), tuttavia dalle risposte ho capito questo probabilmente richiede modifiche al codice PHP del plugin, quindi vorrei invece chiedere qui.

A seguito delle risposte che ho ricevuto il doctype, ho fatto alterare la seguente sezione di codice:

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);

Nel codice di cui sopra, ho aggiunto un wrapper htmlspecialchars_decode per la generazione di entrambi BLOGNAME e titolo, ma il soggetto e-mail e il corpo contiene ancora '.

Che cosa posso fare per risolvere questo?

Grazie

È stato utile?

Soluzione

Come per la documentazione sul htmlspecialchars_decode , è necessario di passare ENT_QUOTES come argomento $quote_style per poter convertire ' a '. Prova ENT_QUOTES impostazione:

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);

Altri suggerimenti

WordPress sostituisce un apostrofo nel titolo del blog con ' prima lo memorizza nel database. Se si desidera ignorare questo, modificare il file functions.php e inserire la seguente dichiarazione:

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

che costringerà il titolo ad essere esattamente quello che entra. Modifiche al titolo del blog si effettua nel menu Impostazioni non avrà alcun effetto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top