WordPress plugin Subscribe2 échappe caractères nom du blog lors de l'envoi email
-
19-09-2019 - |
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
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.