Wordpress Plugin Subscribe2 kodierter Zeichen in Blog-Namen, wenn E-Mail zu senden
-
19-09-2019 - |
Frage
Ich verwende Subscribe2 Plugin in meinem neuen kommenden Wordpress-Blog ( http://www.adlerr.com ). Mein Blog Titel ist „Roee Adler Blog“. Wenn eine E-Mail zu senden, Subscribe2 entkommt die Apostroph in meinem Blog Titel und der E-Mail-Betreff empfangen wird, wie folgt:
[Roee Adler's Blog] Please confirm your request
Der E-Mail-Text lautet:
Roee Adler's Blog has received a request to
subscribe for this email address. To complete your
request please click on the link below:
...
Ich mag natürlich auch die „normale“ un-escaped hat Version meines Blog-Namen im Titel und Körper.
, fragte ich diese Frage auf doctype.com ohne Erfolg ( hier ist die Frage ), aber aus den Antworten verstand ich dies wahrscheinlich Änderungen an die erfordert PHP-Code des Plug-In, so dass ich lieber hier fragen würde.
Im Anschluss an die Antworten, die ich auf Doctype erhielt, habe ich den folgenden Code-Abschnitt ändern:
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);
In dem obigen Code, fügte ich eine htmlspecialchars_decode
Wrapper für die Erzeugung von sowohl Blognamen und TITEL jedoch den E-Mail-Betreff und enthält noch '
.
Was kann ich tun, um dies zu lösen?
Danke
Lösung
Wie pro in der Dokumentation zu htmlspecialchars_decode
, müssen Sie ENT_QUOTES
als $quote_style
Argument übergibt es '
zu '
zu konvertieren. Versuchen Sie Einstellung 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);
Andere Tipps
Wordpress ersetzt einen Apostroph in dem Blog-Titel mit '
, bevor er sie in der Datenbank speichert. Wenn Sie wollen, dass diese außer Kraft zu setzen, bearbeiten die functions.php-Datei und fügen Sie die folgende Anweisung:
update_option("blogname", "My Blog's Title With Apostrophe");
Das wird den Titel zwingen, genau das sein, was Sie eingeben. Änderungen an dem Blog-Titel Sie im Menü Einstellungen vornehmen keine Auswirkung.