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

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top