المدونة

محرر الموقع الآمن للعملاء: دليل theme.json

استخدم theme.json لتحديد حدود في محرر موقع ووردبريس ليتمكن العملاء من تعديل المحتوى دون كسر تصميمك.

ملخص

عندما يفتح العميل محرر موقع ووردبريس لأول مرة، فإن القدرة على تعديل كل كتلة ولون وتخطيط قد تبدو كميزة بالنسبة له — وتهديدًا بالنسبة لك. تشرح هذه المقالة كيفية استخدام theme.json لرسم خط واضح بين تحرير المحتوى والتحكم في التصميم. بدلاً من محاربة محرر الموقع، يمكنك إعداد الإعدادات المسبقة والافتراضيات والحدود التي تجعل من الآمن للعملاء غير التقنيين تحديث موقعهم بأنفسهم. سنستعرض ما يجب قفله، وما يجب تركه مفتوحًا، ولماذا الإفراط في القفل يشكل خطرًا حقيقيًا. يعتمد هذا الأسلوب على رموز التصميم والقيود على مستوى القالب، بحيث يعمل بشكل متسق عبر كل مواقع العملاء التي تديرها. في النهاية، سيكون لديك سير عمل قابل للتكرار لتسليم محرر الموقع دون تسليم مفاتيح نظام التصميم الخاص بك.

ما هو أول شيء تفعله عندما يرسل عميل بريدًا إلكترونيًا ليقول إنه "حاول فقط تحديث العنوان الرئيسي" وانهارت المسافات في الموقع بأكمله؟

إذا كنت تدير أكثر من موقع ووردبريس واحد، فمن المحتمل أنك تلقيت هذه الرسالة بشكل أو بآخر. لقد أعطى محرر الموقع لعميلك مفاتيح سيارة بخمس ناقل حركة وبدون فرامل. يعتقد أنه يقوم بتغيير نص بسيط، وفجأة أصبحت الخطوط العامة معطلة، وأصبحت الصورة الرئيسية في الصفحة الرئيسية بلون نيون لم تختره أنت، وأصبحت كتلتان مكدستين بدلاً من أن تكونا جنبًا إلى جنب.

في هذه الأثناء، تفكر في المواقع الستة الأخرى التي تدعمها، وآخر ما تحتاجه هو فخ صيانة حيث يتطلب كل تعديل "مفيد" من العميل استعادة من نسخة احتياطية.

الجواب ليس إزالة محرر الموقع، بل وضع حدود داخله باستخدام theme.json. وفقًا لموارد مطوري ووردبريس، فإن theme.json هو المصدر المركزي للحقيقة لإعدادات وأنماط محرر الكتل — فهو يحدد لوحات الألوان والخطوط وخيارات التخطيط التي تظهر للعميل. هذا يعني أن الملف نفسه الذي يتحكم في تصميمك يمكنه أيضًا التحكم في ما يمكن للعميل تعديله وما لا يمكنه.

دعنا نستعرض كيف نفكر في هذا الأمر، لأن معظم البرامج التعليمية تركز على ما يمكن أن يفعله theme.json للمطورين. السؤال بالنسبة للوكالة مختلف: كيف نستخدمه لجعل العملاء آمنين دون أن يشعروا بأنهم محاصرون؟

لماذا يبدو محرر الموقع خطيرًا جدًا؟

عميلك لا يحاول كسر الموقع. إنه يحاول فعل ما تدربته لسنوات في المحرر القديم: تغيير عنوان، استبدال صورة، ربما إضافة فقرة. الخطر ليس نيته — بل أن محرر الموقع يعرض عناصر التحكم العامة في نفس مكان عناصر التحكم في المحتوى.

إليك سيناريو شائع. يفتح العميل قالبًا في محرر الموقع ويرى كتلة عنوان. يغير لونها ليطابق لون العلامة التجارية الجديدة. ولكن نظرًا لأن هذا العنوان موجود في قالب، فإن التغيير ينطبق في كل مكان يُستخدم فيه هذا القالب. بالنسبة للعميل، بدا وكأنه تعديل واحد. بالنسبة للموقع، كان تغييرًا عامًا.

المبدأ العام: عندما تعطي شخصًا ما منشئ صفحات، فسيجد في النهاية "الإعدادات ذات الحواجز الواقية" ويقوم بإيقاف تشغيلها. لكن مع theme.json، يمكنك إخفاء الحواجز نفسها. بدلاً من إخبار العميل "لا تلمس الأنماط العامة"، أنت ببساطة لا تعرض له لوحة ألوان يمكن أن تنتج نتيجة سيئة. أنت تحدد لوحة من الألوان المعتمدة، ومقياسًا لأحجام الخطوط، ومجموعة من الإعدادات المسبقة للمسافات — ويختار العميل من تلك الخيارات، وليس من الطيف الكامل لـ CSS.

هذا هو التحول الأول: توقف عن التفكير في القواعد، وابدأ التفكير في المصانع. theme.json هو خط الإنتاج الخاص بك. أنت تكوين الخيارات التي يراها العميل، ويتم فرض القيود بواسطة الواجهة نفسها، وليس من خلال مجموعة من التعليمات في مستند تسليم.

ما الذي يجب عليك فعلاً قفله؟

ليس كل شيء. إذا قمت بقفل منطقة المحتوى بإحكام شديد، فسيتصل بك العميل في كل مرة يحتاج فيها إلى إضافة فقرة، أو سيجد طريقة للالتفاف عليك — غالبًا عن طريق إضافة مكون إضافي لمرة واحدة أو نسخ HTML من موقعه القديم.

إليك جدول عملي لما يجب قفله، وما يجب تركه، ولماذا:

سطح التحريرهل نقفله؟لماذا
هيكل القالب وتخطيطات الكتلقفليمنع الإزالة العرضية أو إعادة ترتيب كتل التخطيط الأساسية
الأنماط العامة (الألوان والخطوط والإعدادات المسبقة للمسافات)قفل مع إعدادات مسبقةيختار العملاء من مجموعة معتمدة، وليس من قيم عشوائية
نص المحتوى والصوراتركه مفتوحًاهذه هي وظيفتهم؛ دعهم يفعلونها دون طلب إذن
المسافات بين الكتلقفل جزئيتوفير إعدادات مسبقة للمسافات حتى يتمكنوا من ضبط الإيقاع دون كسر المحاذاة
أنماط الكتل المنسقةاتركه مفتوحًا إذا كنت قد دققت فيهاطريقة آمنة للعملاء لإضافة أقسام جديدة دون البناء من الصفر

الفارق الدقيق المهم هو "قفل مع إعدادات مسبقة"، وليس "قفل خارجي". بالنسبة للأنماط العامة، فأنت لا تخفي لوحة الإعدادات؛ بل تقلل عدد الخيارات إلى مجموعة منسقة. بالنسبة لهيكل القالب، يمكنك قفل كتل معينة بحيث لا يمكن إزالتها، ولكن لا تزال تسمح للعملاء بتحرير النص داخلها.

كلمة تحذير: قفل كتلة في قالب يختلف عن قفلها في صفحة معينة. أقفال القوالب تؤثر على جميع المحتوى الذي يستخدم القالب. إذا كنت بحاجة إلى مستويات قفل مختلفة في صفحات مختلفة، فستحتاج إلى العمل على مستوى الكتلة داخل المحرر، وهو أكثر هشاشة. بالنسبة لعمل الوكالات المتكرر، صمم قوالبك بحيث تكون المناطق المقفلة متسقة.

كيف تحدد الحدود دون أن تجعل المحرر يبدو كفخ؟

الأسلوب هو تحديد رموز التصميم الخاصة بك في theme.json ثم مقاومة فعل أي شيء آخر في CSS.

على سبيل المثال، بدلاً من السماح للعميل بتعيين لون عشوائي على زر، يمكنك تحديد نمط زر في theme.json يستخدم لونًا محددًا من لوحة الألوان الخاصة بك. لا يزال بإمكان العميل تحديد الزر وتغيير نصه، لكن منتقي الألوان يعرض فقط الألوان المعتمدة لديك. ينطبق الشيء نفسه على أحجام الخطوط وارتفاعات الأسطر والمسافات.

ينطبق المبدأ نفسه على القوالب. يمكنك استخدام ميزة "القفل" على كتل محددة داخل قالب — على سبيل المثال، قفل بنية الأعمدة في كتلة شهادة حتى يتمكن العميل من تغيير نص الاقتباس ولكن لا يمكنه تحويل ثلاثة أعمدة إلى عمودين. إذا لم تستخدم قفل الكتل بعد، فهو متاح في شريط أدوات المحرر؛ عند قفل كتلة، يمكنك اختيار ما إذا كان بإمكان العميل تحرير المحتوى أو نقله أو كليهما. يمكنك حتى تطبيق هذا في theme.json للافتراضيات على مستوى الكتلة.

ما تهدف إليه هو محرر لا يرى فيه العميل أبدًا عنصر تحكم يمكن أن يكسر التصميم. هذا لا يعني أنه لا يمكنه فعل أي شيء خاطئ؛ بل يعني أن أسوأ خطأ يمكنه فعله هو تغيير صيغة العنوان، وليس مظهر الموقع بالكامل.

إذا كنت تستخدم أنواع المحتوى المخصصة، فإن المبادئ نفسها تنطبق خارج القوالب الافتراضية — راجع دليلنا حول توسيع theme.json ليشمل أنواع المحتوى المخصصة ومخرجات الإضافات.

ماذا يحدث عندما تقفل أكثر من اللازم؟

هذه هي النقطة المخالفة: الإفراط في القفل ضار تمامًا مثل التفريط في القفل. العميل الذي لا يستطيع تغيير حجم عنوان أو إضافة مسافة بين الأقسام سيطلب منك في النهاية "فقط اجعله يبدو صحيحًا" — ثم تعود للقيام بتعديلات صغيرة مجانًا. الأسوأ من ذلك، قد يقرر أن محرر الموقع عديم الفائدة ويعود إلى منشئ صفحات تابع لجهة خارجية، مما يمنحه الكثير من التحكم مرة أخرى.

المقايضة حقيقية. المحررات المقفلة تنتج مكالمات طوارئ أقل، ولكنها تنتج أيضًا المزيد من طلبات "هل يمكنك تحريك هذا الزر لأعلى بمقدار خمس بكسلات". المحررات المفتوحة تنتج العكس. وظيفتك هي إيجاد نقطة التوازن لكل عميل، وليس تطبيق تكوين واحد عالميًا.

القاعدة الأساسية الجيدة: قفل كل ما يؤثر على جميع الحالات لشيء ما (الأنماط العامة، هيكل القالب)، واترك مفتوحًا كل ما يؤثر على حالة واحدة (نص وصور صفحة واحدة). إذا كسر العميل صفحة واحدة، فهذا إصلاح لمدة 5 دقائق. إذا كسر نمطًا عامًا، فهذا إصلاح لمدة 20 دقيقة ومصدر قلق أمني.

كيف تجعل هذا قابلاً للتكرار عبر العملاء؟

هنا يأتي دور سير عمل الوكالة. يجب أن يكون لديك theme.json أساسي يحدد رموز التصميم الخاصة بك — لوحة الألوان، ومقياس الخطوط، والإعدادات المسبقة للمسافات — ثم ملف تجاوز خاص بكل عميل يعمل على توسيع أو تغيير قيم محددة.

ابدأ بإنشاء قالب كتلة "مبتدئ". إليك كيفية بناء قالب كتلة مخصص مع theme.json — بمجرد تطويره وتوثيقه، يصبح نسخه إلى عميل جديد مسألة استبدال ألوان العلامة التجارية والخطوط. أنت لا تعيد بناء العجلة؛ أنت تستبدل الرموز. هذه هي بالضبط عقلية التوقف عن إعادة بناء كل موقع ووردبريس، ولكنها مطبقة على المحرر بدلاً من الواجهة الخلفية.

نظرًا لأن theme.json هو ملف واحد، فمن السهل أيضًا التحكم في إصداراته ونشره عبر بيئات متعددة. يمكنك مراجعة التغييرات، ومعرفة ما عدله العميل في الأنماط العامة، ومقارنة تلك التغييرات مع ملفك الأساسي. وهذا يمنحك سجل تدقيق قوي لطلبات الدعم.

إذا كنت تدير مواقع متعددة ولم تقم بإعداد قالب أساسي بعد، فهذه فرصتك. إنه الجزء الوحيد من عمل ووردبريس المخصص الذي يدفع تكاليفه في كل مرة يفتح فيها العميل المحرر.

ماذا عن العملاء الذين يطلبون باستمرار "لونًا إضافيًا"؟

لوحة الألوان الخاصة بك هي وعد. إذا حددت خمسة ألوان للعلامة التجارية، وطلب العميل لونًا سادسًا، فإن الإجابة ليست "لا" — بل "نعم، لكنه يصل كإضافة مقصودة إلى اللوحة، وليس كرمز لون عشوائي في عنوان." عندما تضيف لونًا إلى theme.json، يصبح متاحًا في جميع أنحاء الموقع بشكل متسق. هذه هي الطريقة الصحيحة للتعامل مع هذه الطلبات.

هنا أيضًا تحتاج إلى التواصل مع العميل. اشرح له أن محرر الموقع يعرض فقط الألوان والخطوط التي تتوافق مع معايير علامته التجارية. إذا أراد توسيع هذه المعايير، فستتعامل معها في نظام التصميم، وبعد ذلك سيكون كل لون جديد متاحًا في كل مكان — بما في ذلك الصفحات المستقبلية التي لم ينشئها بعد. هذا إجابة أفضل بكثير من "نحن لا نفعل ذلك".

في الوقت نفسه، لا تجمع لوحة من أربعين لونًا. أعد النظر فيها كل ثلاثة أشهر وأزل أي شيء كان حادثًا لمرة واحدة. الهدف هو مجموعة صغيرة ومقصودة من الخيارات.

إذا قمت بقفل التخطيط ولكن تركت المحتوى، وجعلت اللوحة جزءًا حيًا من علاقتك مع العميل، فإن محرر الموقع يتوقف عن كونه تهديدًا. يصبح وسيلة لمنح عملائك استقلالية حقيقية دون التضحية بمعايير التصميم التي تتقاضى أجرًا لحمايتها.

Sources (5)