Question

J'utilise le plugin Subscribe2 dans mon nouveau blog WordPress à venir ( http://www.adlerr.com ). Le titre de mon blog est « Blog de Roee Adler ». Lors de l'envoi d'un e-mail, Subscribe2 échappe l'apostrophe dans le titre de mon blog, et l'objet du courriel est reçu comme suit:

[Roee Adler's Blog] Please confirm your request

Le corps e-mail est:

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

Je voudrais naturellement avoir la version échappée de non « normal » de mon nom de blog dans le titre et le corps.

J'ai posé cette question sur doctype.com sans succès ( voici la question ), cependant des réponses que je compris cela nécessite probablement des changements au code PHP du plug-in, donc je préfère poser ici.

A la suite des réponses que je recevais sur doctype, je ne modifier la section de code suivante:

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

Dans le code ci-dessus, j'ai ajouté une enveloppe htmlspecialchars_decode pour la génération des deux BLOGNAME et TITLE, mais l'objet de l'e-mail et le corps contient encore '.

Que puis-je faire pour résoudre ce problème?

Merci

Était-ce utile?

La solution

par la documentation sur htmlspecialchars_decode, vous avez besoin passer ENT_QUOTES comme argument pour $quote_style à convertir ' à '. Essayez de régler 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);

Autres conseils

WordPress remplace une apostrophe dans le titre de blog avec ' avant qu'il stocke dans la base de données. Si vous souhaitez remplacer ce, modifiez le fichier functions.php et insérer la déclaration suivante:

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

Cela forcera le titre à être exactement ce que vous entrez. Les modifications apportées au titre du blog que vous faites dans le menu Paramètres auront aucun effet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top