دليل كامل للعثور على روابط mailto واستبدالها في موقع WordPress.
لماذا نستبدل روابط mailto في WordPress
المشاكل الشائعة
روابط mailto في WordPress:
- تعرّض البريد لعناكب الخدش
- معطلة في بريد iPhone (iOS 26.1)
- تجربة جوال سيئة
- لا حماية من البريد العشوائي
- لا تتبع ولا تحليلات
المواقع الشائعة:
- قوالب السمة (الرأس، التذييل)
- عناصر القوائم
- مناطق الويدجت
- محتوى الصفحات/المقالات
- كتل HTML مخصصة
- توقيعات البريد في السير الذاتية
أين تختبئ روابط mailto في WordPress
مواقع السمة
1. الرأس
header.php- قوائم التنقل
- معلومات الاتصال في الشريط العلوي
2. التذييل
footer.php- ويدجتات التذييل
- منطقة حقوق النشر/الاتصال
3. الشريط الجانبي
sidebar.php- مناطق الويدجت
- ويدجتات الاتصال
4. قوالب الصفحات
page.php,single.php- قالب صفحة الاتصال
- قوالب مخصصة
مواقع المحتوى
1. قوائم التنقل
- المظهر → Menus
- القائمة الرئيسية
- قائمة التذييل
- قائمة الجوال
2. الويدجتات
- المظهر → Widgets
- ويدجتات النص
- ويدجتات HTML
- ويدجتات مخصصة
3. الصفحات والمقالات
- صفحة الاتصال
- صفحة من نحن
- مقالات المدونة
- السير الذاتية للمؤلفين
4. الحقول المخصصة
- حقول ACF
- صناديق Meta
- حقول الاتصال المخصصة
نهجا الاستبدال
النهج 1: الاستبدال اليدوي (موصى به أولاً)
الأفضل لـ:
- مواقع صغيرة (أقل من 50 صفحة)
- الرغبة بالتحكم بكل استبدال
- تنظيف لمرة واحدة
الخطوات أدناه.
النهج 2: الاستبدال التلقائي بـ JavaScript (موصى به للمواقع الكبيرة)
الأفضل لـ:
- مواقع كبيرة (مئات الصفحات)
- حماية مستمرة
- حلّ ثبّت وانسَ
انظر مقتطف JavaScript أدناه.
خطوات الاستبدال اليدوي
الخطوة 1: إنشاء النموذج (5 دقائق)
- سجّل في SupportRetriever
- أكمل الإعداد
- أعد نموذج الاتصال
- احصل على رابط النموذج:
https://supportretriever.com/form/your-form-id - أبقِه جاهزاً للاستبدالات
الخطوة 2: البحث عن روابط mailto (10 دقائق)
البحث في قاعدة البيانات
باستخدام إضافة Search & Replace:
- ثبّت إضافة "Better Search Replace" (مجانية)
- انتقل إلى Tools → Better Search Replace
- ابحث عن:
mailto: - حدد كل الجداول
- لا تستبدل بعد — ابحث فقط لترى ما لديك
- راجع النتائج
البحث في ملفات السمة
- انتقل إلى المظهر → محرر السمة
- ابحث عن
mailto:في:- header.php
- footer.php
- functions.php
- ملفات القوالب
فحص القوائم
- انتقل إلى المظهر → Menus
- تحقق من كل عنصر قائمة
- ابحث عن "Custom Links" بعناوين mailto
فحص الويدجتات
- انتقل إلى المظهر → Widgets
- افتح كل ويدجت
- تحقق من ويدجتات النص/HTML لروابط mailto
فحص المحتوى
- استخدم Better Search Replace للبحث في محتوى المقالات
- أو بحث WordPress:
mailto:في المقالات/الصفحات
الخطوة 3: الاستبدال في القوائم (5 دقائق)
لعناصر قائمة التنقل:
- انتقل إلى المظهر → Menus
- ابحث عن عناصر القائمة التي تحتوي روابط mailto
- انقر لتوسيع كل عنصر
- استبدل الرابط برابط النموذج:
Old: mailto:support@example.com
New: https://supportretriever.com/form/your-form-id?المصدر=menu
- حدّث تسمية التنقل إن لزم:
Old label: support@example.com
New label: Contact Support
- احفظ القائمة
الخطوة 4: الاستبدال في الويدجتات (5 دقائق)
لمناطق الويدجت:
- انتقل إلى المظهر → Widgets
- افتح كل ويدجت نص/HTML
- انتقل إلى تبويب "Text" (وليس Visual)
- ابحث واستبدل:
<!-- Old -->
<a href="mailto:contact@example.com">تواصل معنا</a>
<!-- New -->
<a href="https://supportretriever.com/form/your-form-id?المصدر=widget">تواصل معنا</a>
- احفظ كل ويدجت
الخطوة 5: الاستبدال في ملفات السمة (10 دقائق)
لـ header.php:
- انتقل إلى المظهر → محرر السمة
- افتح
header.php - ابحث عن روابط mailto
- استبدل برابط النموذج:
<!-- Old -->
<a href="mailto:<?php echo get_option('admin_email'); ?>">
Contact
</a>
<!-- New -->
<a href="https://supportretriever.com/form/your-form-id?المصدر=header">
Contact
</a>
- احفظ الملف
لـ footer.php:
<!-- Old -->
<p>البريد الإلكتروني: <a href="mailto:info@example.com">info@example.com</a></p>
<!-- New -->
<p><a href="https://supportretriever.com/form/your-form-id?المصدر=footer">تواصل معنا</a></p>
ملاحظة: فكّر بإنشاء سمة فرعية قبل تعديل ملفات السمة.
الخطوة 6: الاستبدال في المحتوى (10 دقائق)
باستخدام Better Search Replace:
- انتقل إلى Tools → Better Search Replace
- ابحث عن:
mailto:support@example.com - استبدل بـ:
https://supportretriever.com/form/your-form-id?المصدر=content - حدد الجداول:
wp_posts,wp_postmeta - شغّل كتجربة جافة أولاً
- راجع ما سيُغيّر
- إن كان جيداً، شغّل فعلياً (ألغِ تحديد "dry run")
- شغّل البحث والاستبدال
أو تحرير الصفحات يدوياً:
- حرّر كل صفحة/مقالة تحتوي روابط mailto
- انتقل إلى "Code editor" (أو تبويب Text)
- ابحث واستبدل روابط mailto
- حدّث كل صفحة
الخطوة 7: الاستبدال في الحقول المخصصة (إن وُجدت)
إن كنت تستخدم ACF أو حقولاً مخصصة:
- انتقل إلى المقالات/الصفحات ذات الحقول المخصصة
- حرّر كل واحدة
- حدّث حقول البريد برابط النموذج
- احفظ التغييرات
طريقة الاستبدال التلقائي بـ JavaScript
متى تستخدمها
استخدم الاستبدال التلقائي بـ JavaScript إذا:
- لديك مئات الصفحات
- روابط mailto في أماكن متعددة
- تريد حماية مستمرة
- المحتوى الجديد قد يحتوي روابط mailto
- لا تريد تتبعها كلها يدوياً
التثبيت
الطريقة 1: تذييل السمة (الأبسط)
- انتقل إلى المظهر → محرر السمة
- افتح
footer.php - أضف قبل وسم
</body>:
<script>
(function() {
const FORM_URL = 'https://supportretriever.com/form/your-form-id';
document.querySelectorAll('a[href^="mailto:"]').forEach(link => {
const originalHref = link.getAttribute('href');
const emailMatch = originalHref.match(/mailto:([^?]+)/);
if (emailMatch) {
link.setAttribute('href', FORM_URL + '?المصدر=autoconvert');
link.setAttribute('data-original-email', emailMatch[1]);
}
});
})();
</script>
- احفظ الملف
الطريقة 2: إضافة Code Snippets (موصى بها)
- ثبّت إضافة Code Snippets (مجانية)
- انتقل إلى Snippets → Add New
- العنوان: "Replace mailto Links"
- الصق هذا الكود:
add_action('wp_footer', function() {
?>
<script>
(function() {
const FORM_URL = 'https://supportretriever.com/form/your-form-id';
document.querySelectorAll('a[href^="mailto:"]').forEach(link => {
const originalHref = link.getAttribute('href');
const emailMatch = originalHref.match(/mailto:([^?]+)/);
if (emailMatch) {
link.setAttribute('href', FORM_URL + '?المصدر=autoconvert');
link.setAttribute('data-original-email', emailMatch[1]);
}
});
})();
</script>
<?php
});
- فعّل "Only run in frontend"
- احفظ المقتطف وفعّله
الطريقة 3: functions.php
فقط إن كنت تستخدم سمة فرعية:
- افتح
functions.phpللسمة الفرعية - أضف هذا الكود:
function replace_mailto_links() {
?>
<script>
(function() {
const FORM_URL = 'https://supportretriever.com/form/your-form-id';
document.querySelectorAll('a[href^="mailto:"]').forEach(link => {
const originalHref = link.getAttribute('href');
const emailMatch = originalHref.match(/mailto:([^?]+)/);
if (emailMatch) {
link.setAttribute('href', FORM_URL + '?المصدر=autoconvert');
link.setAttribute('data-original-email', emailMatch[1]);
}
});
})();
</script>
<?php
}
add_action('wp_footer', 'replace_mailto_links');
- احفظ الملف
اختبار طريقة JavaScript
- زر موقعك
- انقر يميناً على رابط mailto سابق
- فحص العنصر
- تحقق من أن
hrefيشير الآن للنموذج - انقر الرابط للاختبار
- تحقق من فتح النموذج
لماذا توجد "إضافات الترميز" (ومتى الاستبدال أفضل)
إضافات ترميز/إخفاء البريد
إضافات شائعة:
- عنوان البريد الإلكتروني Encoder
- البريد الإلكتروني Obfuscator
- Hide My البريد الإلكتروني
ماذا تفعل:
- ترميز عناوين البريد بـ JavaScript
- محاولة الإخفاء عن البوتات
- الإبقاء على وظيفة mailto
مثال ترميز:
// Instead of: support@example.com
// Becomes: support@...
متى الترميز أفضل
استخدم إضافات الترميز إذا:
- يجب عليك عرض عنوان البريد الفعلي
- المستخدمون يحتاجون نسخ البريد
- لا يمكنك استخدام نموذج اتصال
- وضعك يتطلب بريداً ظاهراً
متى الاستبدال أفضل (معظم الحالات)
استبدل بالنموذج إذا:
- تريد أقصى حماية من البريد العشوائي (99% مقابل 30%)
- تجربة الجوال مهمة (مشكلة iOS 26.1)
- تريد إدارة المحادثات
- تريد التحليلات
- تريد حلاً طويل الأمد
مزايا الاستبدال على الترميز:
| Feature | Encoding Plugin | النموذج Replacement |
|---|---|---|
| Spam protection | 30-40% | 99%+ |
| Mobile reliability | Poor | Excellent |
| iOS 26.1 compatible | No | Yes |
| Accessibility | Medium | Excellent |
| User experience | Medium | Better |
| Long-term effectiveness | Degrades | Permanent |
| Conversation management | No | Yes |
| Analytics | No | Yes |
الخلاصة: لمعظم المواقع، الاستبدال بالنماذج يوفر حماية وتجربة مستخدم أفضل من الترميز.
خطوة بخطوة
دليل نصي
مسار التنقل:
Finding mailto in Menu:
WordPress مسؤول → Appearance → Menus →
Select menu → Expand menu item →
Look at URL field → Replace if contains "mailto:"
Finding mailto in Widgets:
WordPress مسؤول → Appearance → Widgets →
Click widget to expand → Switch to Text tab →
Find mailto: in HTML → Replace with form URL
Finding mailto in Theme:
WordPress مسؤول → Appearance → Theme تعديلor →
Select header.php or footer.php →
Search page for "mailto:" → Replace each instance →
Click "Update File"
Using Better Search Replace:
WordPress مسؤول → Tools → Better Search Replace →
"Search for" field: mailto:youremail@example.com →
"Replace with" field: https://supportretriever.com/form/your-id →
Select tables: wp_posts →
Check "Run as dry run" → Click "Run Search/Replace" →
Review results → Uncheck dry run → Run again for real
قائمة التحقق
بعد الاستبدال
- زر الصفحة الرئيسية — تحقق من روابط التذييل/الرأس
- تحقق من صفحة الاتصال — تأكد من عدم وجود روابط mailto
- تحقق من قوائم التنقل — كل العناصر تعمل
- تحقق من ويدجتات الشريط الجانبي — روابط النموذج تعمل
- اعرض مصدر الصفحة — ابحث عن "mailto:" (يجب ألا تجد شيئاً)
- اختبر على جهاز جوال — تحقق من فتح الروابط للنموذج
- اختبر على iPhone — تحقق من عمل إصلاح iOS 26.1
- أرسل رسالة تجريبية — تحقق من التسليم
- تحقق من إشعار البريد — تحقق من الاستلام
أوامر الاختبار
البحث عن روابط mailto المتبقية:
- اعرض مصدر الصفحة (Ctrl+U / Cmd+U)
- ابحث عن "mailto:" (Ctrl+F / Cmd+F)
- النتيجة المتوقعة: 0
- إن وجدت أيّاً، سجّل الموقع واستبدل
اختبار روابط النموذج:
- انقر كل رابط اتصال
- تحقق من فتح النموذج
- املأ إرسالاً تجريبياً
- تحقق من وصول البريد
- كرر على الجوال
استكشاف الأخطاء
"ما زلت أرى روابط mailto"
أسباب محتملة:
- صفحات مخزنة مؤقتاً (امسح الكاش)
- كاش CDN (امسح كاش CDN)
- كاش المتصفح (تحديث قوي: Ctrl+Shift+R)
- مواقع فاتتك (راجع كل المصادر)
الحلول:
- امسح كل الكاش
- استخدم التصفح الخاص
- راجع كل المواقع مرة أخرى
"طريقة JavaScript لا تعمل"
أسباب محتملة:
- خطأ JavaScript
- ترتيب تحميل السكربت
- إضافات متعارضة
التشخيص:
- افتح وحدة تحكم المتصفح (F12)
- ابحث عن أخطاء
- تحقق من تحميل السكربت
- تحقق من تعارض jQuery
الحلول:
- لف في
jQuery(document).ready() - حمّل السكربت في التذييل (وليس الرأس)
- عطّل الإضافات واحدةً واحدةً لمعرفة التعارض
"رابط النموذج خاطئ"
الإصلاح:
- انتقل إلى لوحة SupportRetriever
- انتقل إلى إدارة النماذج
- انسخ رابط النموذج الصحيح
- حدّث كل المواضع
- امسح الكاش
WordPress متعدد المواقع
الاستبدال على مستوى الشبكة
إن كان لديك multisite:
- استخدم Better Search Replace على قاعدة بيانات الشبكة
- أو شغّل السكربت على كل موقع فرعي
- أو أضف JavaScript لسمة الشبكة
اعتبارات:
- المواقع المختلفة قد تحتاج نماذج مختلفة
- استخدم البيانات الوصفية لتتبع الموقع:
?site=site1 - فكّر بنموذج مركزي أو نماذج منفصلة لكل موقع
