WordPress Subscribe2 البرنامج المساعد يهرب من الأحرف في اسم بلوق عند إرسال البريد الإلكتروني

StackOverflow https://stackoverflow.com/questions/1329205

سؤال

أنا أستخدم Subscribe2 البرنامج المساعد في مدونة WordPress الجديدة الجديدة (http://www.adlerr.com.). عنوان مدونتي هو "مدونة روي أدلر". عند إرسال بريد إلكتروني، يهرب Subscibe2 من النقاط الفاصلة في عنوان مدونتي، ويتم استلام موضوع البريد الإلكتروني على النحو التالي:

[Roee Adler's Blog] Please confirm your request

هيئة البريد الإلكتروني هي:

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

أود بطبيعة الحال أن يكون لديك إصدار "طبيعي" غير هرب من اسم مدونتي في العنوان والجسم.

سألت هذا السؤال Doctype.com. مع عدم وجود نجاح (إليك السؤال)، ولكن من الإجابات فهمت أن هذا ربما يتطلب تغييرات على رمز PHP للمساعد، لذلك أفضل أن أسألها هنا.

بعد الإجابات التي تلقيتها على DocType، قمت بتغيير القسم التالي من التعليمات البرمجية:

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

في الكود أعلاه، أضفت htmlspecialchars_decode المجمع لتوليد كل من blogname والعنوان، ولكن موضوع البريد الإلكتروني والجسم لا يزال يحتوي على '.

ماذا يمكنني أن أفعل لحل هذا؟

شكرا

هل كانت مفيدة؟

المحلول

حسب الوثائق في htmlspecialchars_decode, تحتاج إلى المرور ENT_QUOTES كما $quote_style حجة لذلك لتحويل ' ل '. وبعد حاول الإعداد 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);

نصائح أخرى

يستبدل WordPress بقايا في عنوان بلوق ' قبل أن يخزنها في قاعدة البيانات. إذا كنت ترغب في تجاوز هذا، قم بتحرير ملف الوظائف. وإدخال العبارة التالية:

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

سيؤدي ذلك إلى إجبار العنوان على أن يكون بالضبط ما تدخله. التغييرات في عنوان المدونة التي تقوم بها في قائمة الإعدادات لن يكون لها أي تأثير.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top