غوتنبرغ كل ما تحتاج لمعرفته حول وورد آخر محرر
غوتنبرغ هو محرر جديد لووردبريس سوف تماما استبدال المحرر الحالي الذي يعمل بنظام TinyMCE. إنه مشروع طموح سيؤدي إلى تغيير WordPress بعدة طرق وسيؤثر على المستخدمين النهائيين والمطورين العاديين ، وخاصة أولئك الذين يعتمدون على شاشة المحرر للعمل على WordPress. هنا هو كيف يبدو.
يقدم غوتنبرغ أيضًا نموذجًا جديدًا في WordPress يسمى “منع”.
“منع” هو مصطلح مجردة يستخدم لوصف وحدات العلامات التي تتكون من محتوى أو تخطيط صفحة ويب. تجمع هذه الفكرة بين مفاهيم ما نجده في WordPress اليوم الرموز المختصرة ، HTML المخصص ، واكتشاف التضمين في واجهة برمجة تطبيقات واحدة متسقة وتجربة المستخدم.
إعداد المشروع
معرفة حقيقة أن غوتنبرغ مبنية على قمة React ، يشعر بعض المطورين بالقلق من أن حاجز مرتفع للغاية بالنسبة للمطورين المبتدئين لتطوير غوتنبرغ.
قد يكون إعداد React.js مضيعة للوقت ومربكًا تمامًا إذا كنت قد بدأت به للتو. ستحتاج على الأقل ، محول JSX ، Babel ، اعتمادًا على الكود الخاص بك ، قد تحتاج إلى بعض إضافات Babel ، و Bundler مثل Webpack أو Rollup أو Parcel.
لحسن الحظ, تصاعد بعض الأشخاص داخل مجتمع WordPress ويحاولون جعل تطوير Gutenberg سهلاً قدر الإمكان ليتبعه الجميع. اليوم ، لدينا أداة من شأنها أن تولد الغليان غوتنبرغ بذلك يمكننا أن نبدأ كتابة التعليمات البرمجية على الفور بدلا من العبث بالأدوات والتكوينات.
إنشاء كتلة غوتن
ال إنشاء guten كتلة
هو مشروع المبادرة التي كتبها أحمد عويس. انه مجموعة أدوات التكوين صفر (# 0CJS
) سوف يسمح لك بتطوير كتلة Gutenberg مع بعض الكدسات المعينة مسبقًا بما في ذلك React و Webpack و ESNext و Babel و ESLint و Sass. اتبع التعليمات للبدء في إنشاء كتلة Guten.
باستخدام ES5 (ECMAScript 5)
استخدام كل هذه الأدوات لإنشاء بسيط “مرحبا بالعالم” كتلة قد يبدو مجرد الكثير. إذا كنت ترغب في الحفاظ على تكدس مداخنك ، فيمكنك بالفعل تطوير كتلة Gutenberg باستخدام أداة ECMAScript 5 جيدة النوعية التي قد تكون لديك معرفة بها بالفعل. اذا كنت تمتلك WP-CLI 1.5.0 مثبت على الكمبيوتر الخاص بك, يمكنك ببساطة تشغيل ...
كتلة سقالة wp[= --title ] [--dashicon = ] [- الفئة = ] [- الموضوع] [- بلوجن = ] [--فرض]
… إلى توليد كتلة كتلة غوتنبرغ إلى البرنامج المساعد الخاص بك أو موضوع. هذا النهج أكثر عقلانية ، خاصة بالنسبة للإضافات والموضوعات الموجودة التي طورتها قبل عصر غوتنبرغ.
بدلاً من إنشاء مكون إضافي جديد لاستيعاب كتل Gutenberg ، قد ترغب في دمج الكتل في الإضافات أو السمات. ولجعل هذا البرنامج التعليمي سهل المتابعة للجميع, سنستخدم ECMAScript 5 مع WP-CLI.
تسجيل كتلة جديدة
تم تطوير Gutenberg حاليًا كمكون إضافي وسيتم دمجه في WordPress 5.0 كلما شعر الفريق أنه جاهز. لذلك ، في الوقت الحالي ، سوف تحتاج إلى تثبيته من الإضافات الصفحة في الفسفور الابيض بين المشرف
. بمجرد تثبيته وتنشيطه ، قم بتشغيل الأمر التالي في الجهاز الطرفي أو موجه الأوامر إذا كنت تستخدم جهازًا يعمل بنظام Windows.
سلسلة كتلة سقالة wp - العنوان = "سلسلة HTML5" - الموضوع
سيقوم هذا الأمر بإنشاء كتلة للموضوع النشط حاليًا. سوف كتلة لدينا تتكون من الملفات التالية:
. ا¢Â  ؟؟ ؟؟ â  ؟؟ ؟؟ â  ؟؟ ؟؟ سلسلة أ¢Â ؟؟ Â'Ã' Ã' â  ؟؟ ؟؟ â  ؟؟ ؟؟ â  ؟؟ ؟؟ block.js â ؟؟ Â'Ã' Ã' â  ؟؟ ؟؟ â  ؟؟ ؟؟ â  ؟؟ ؟؟ editor.css أ¢Â ؟؟ Â'Ã' Ã' â  ؟؟ ؟؟ â  ؟؟ ؟؟ â  ؟؟ ؟؟ style.css أ¢Â  ؟؟ ؟؟ â  ؟؟ ؟؟ â  ؟؟ ؟؟ series.php
دعونا تحميل الملف الرئيسي للكتل لدينا في functions.php
من موضوعنا:
if (function_exists ('register_block_type')) يتطلب get_template_directory (). "/blocks/series.php '؛
لاحظ أننا نرفق تحميل الملف بشروط. وهذا يضمن التوافق مع إصدار WordPress السابق الذي يتم تحميل كتلته فقط عند وجود Gutenberg. يجب أن يكون برنامج Block الخاص بنا متاحًا في واجهة Gutenberg.
هذا كيف يبدو عندما ندرج الكتلة.
واجهات برمجة التطبيقات غوتنبرغ
يقدم غوتنبرغ مجموعتين من واجهات برمجة التطبيقات لتسجيل كتلة جديدة. إذا نظرنا إلى series.php
, سوف نجد الكود التالي الذي يسجل كتلة جديدة لدينا. هذا ايضا يقوم بتحميل ورقة الأنماط و JavaScripts على الواجهة الأمامية والمحرر.
register_block_type ('twentyseventeen / series'، array ('editor_script' => 'series-block-editor'، 'editor_style' => 'series-block-editor'، 'style' => 'series-block'،))؛
كما نرى أعلاه ، لدينا كتلة اسمه twentyseventeen / سلسلة
, يجب أن يكون اسم Block فريدًا ومزودًا بأسماء لتفادي التصادم مع الكتل الأخرى التي تأتي بها الإضافات الأخرى.
علاوة على ذلك, يوفر Gutenberg مجموعة من واجهات برمجة التطبيقات JavaScript الجديدة للتفاعل مع “منع” جهة تعامل في المحرر. نظرًا لأن واجهة برمجة التطبيقات (API) وفيرة تمامًا ، سنركز على بعض التفاصيل التي أعتقد أنك يجب أن تعرفها للحصول على كتلة Gutenberg بسيطة ولكنها فعالة.
wp.blocks.registerBlockType
أولا ، سوف ننظر إلى wp.blocks.registerBlockType
. هذه الوظيفة تستخدم ل تسجيل جديد “منع” إلى محرر غوتنبرغ. يتطلب حجتين. الوسيطة الأولى هي اسم الكتلة الذي يجب أن يتبع الاسم المسجل في register_block_type
وظيفة في الجانب PHP. الحجة الثانية هي كائن تعريف خصائص الكتلة مثل العنوان والفئة واثنين من الوظائف لتقديم واجهة بلوك.
var registerBlockType = wp.blocks.registerBlockType؛ registerBlockType ('twentyseventeen / series' ، title: __ ('HTML5 Series') ، الفئة: 'widgets' ، الكلمات الرئيسية: ['html'] ، edit: function (props) ، حفظ: function (props) ) ؛
wp.element.createElement
هذه الوظيفة تسمح لك بإنشاء العنصر داخل “منع” في محرر النشر. ال wp.element.createElement
وظيفة هي في الأساس مجردة من رد الفعل createElement ()
وظيفة وبالتالي فإنه يقبل نفس مجموعة من الحجج. تأخذ الوسيطة الأولى نوع العنصر على سبيل المثال فقرة ، امتداد
, أو شعبة
كما هو مبين أدناه:
wp.element.createElement ( 'شعبة')؛
في وسعنا الاسم المستعار الوظيفة إلى متغير لذلك هو أقصر في الكتابة. فمثلا:
var el = wp.element.createElement؛ ايل ( 'شعبة')؛
اذا أنت يفضل استخدام بناء جملة ES6 الجديد, يمكنك أيضًا القيام بذلك بهذه الطريقة:
const createElement: el = wp.element؛ ايل ( 'شعبة')؛
يمكننا أيضا إضافة سمات العنصر مثل ال صف دراسي
اسم أو هوية شخصية
على المعلمة الثانية كما يلي:
var el = wp.element.createElement؛ el ('div'، 'class': 'series-html5'، 'id': 'series-html-post-id-001')؛
ال شعبة
التي أنشأناها لن يكون له معنى دون المحتوى. في وسعنا إضافة المحتوى على وسيطة المعلمة الثالثة:
var el = wp.element.createElement؛ el ('p'، 'class': 'series-html5'، 'id': 'series-html-post-id-001'، 'هذه المقالة جزء من "HTML5 / CSS3 سلسلة دروس" - مخصصة للمساعدة في جعلك أفضل مصمم و / أو مطور. انقر هنا لرؤية المزيد من المقالات من نفس السلسلة ') ؛
wp.components
ال wp.components
يحتوي على مجموعة من مكونات غوتنبرغ ، كما يوحي الاسم. هذه المكونات من الناحية الفنية هي مكونات React المخصصة التي تشمل الزر و Popover و Spinner و Tooltip ومجموعة من المكونات الأخرى. في وسعنا إعادة استخدام هذه المكونات في كتلة الخاصة بنا. في المثال التالي ، نضيف عنصر زر.
var Button = wp.components.Button؛ el (Button، 'class': 'download-button'،، 'Download')؛
سمات
السمات هي الطريقة لتخزين البيانات في الحظر الخاص بنا ، وقد تكون هذه البيانات مثل المحتوى والألوان والمحاذاة وعنوان URL وما إلى ذلك. يمكننا الحصول على السمات من الخصائص التي تم تمريرها على تصحيح()
وظيفة ، على النحو التالي:
edit: function (props) var content = props.attributes.seriesContent؛ return el ('div'، 'class': 'series-html5'، 'id': 'series-html-post-id-001'، content)؛
لتحديث السمات ، نستخدم setAttributes ()
وظيفة. عادةً ما نقوم بتغيير المحتوى في إجراء معين ، مثل عند النقر فوق زر ما ، أو تعبئة أحد المدخلات ، أو تحديد أحد الخيارات ، إلخ. في المثال التالي ، نستخدمه لإضافة تراجع محتوى كتلة لدينا في حالة حدث شيء غير متوقع لدينا seriesContent
صفة، عزا.
edit: function (props) if (typeof props.attributes.seriesContent === 'undefined' ||! props.attributes.seriesContent) props.setAttribute (seriesContent: 'Hello World! هنا هو المحتوى الاحتياطي.' ) var content = props.attributes.seriesContent؛ return [el ('div'، 'class': 'series-html5'، 'id': 'series-html-post-id-001'، content)،]؛
إنقاذ الكتلة
ال حفظ()
تعمل وظيفة مماثلة ل تصحيح()
, إلا أنه يحدد محتوى كتلة لدينا لحفظ في قاعدة بيانات النشر. يعد حفظ محتوى الحظر واضحًا تمامًا ، كما نرى أدناه:
save: function (props) if (! props ||! props.attributes.seriesContent) return؛ فار المحتوى = props.attributes.seriesContent؛ return [el ('div'، 'class': 'series-html5'، 'id': 'series-html-post-id-001'، content)،]؛
ماذا بعد?
سوف غوتنبرغ تغيير النظام البيئي وورد للأفضل (أو ربما الأسوأ). انها تمكن المطورين ل اعتماد طريقة جديدة لتطوير الإضافات والموضوعات WordPress. غوتنبرغ هو مجرد بداية. قريبا “منع” سيتم توسيع النموذج إلى مناطق أخرى من WordPress مثل إعدادات APIs والحاجيات.
تعلم جافا سكريبت بعمق. إنها الطريقة الوحيدة للوصول إلى غوتنبرغ والبقاء على صلة بالمستقبل في صناعة WordPress. إذا كنت معتادًا بالفعل على أساسيات JavaScript ، والمراوغات ، والوظائف ، والأدوات ، والسلع ، والأخطاء السيئة ، فأنا متأكد من أنك ستستمتع بسرعة مع Gutenberg.
كما ذكرنا ، يكشف Gutenberg عن وفرة من واجهات برمجة التطبيقات ، وهو ما يكفي للقيام بأي شيء تقريبًا للكتلة الخاصة بك. يمكنك اختيار ما إذا كان ل قم بتشفير Block الخاص بك باستخدام JavaScript قديم أو JavaScript مع بناء جملة ES6 أو React أو حتى Vue.
الأفكار والإلهام
لقد أنشأت كتلة Gutenberg Block (جدًا جدًا) التي يمكنك العثور عليها في مستودع حساب Github الخاص بنا. علاوة على ذلك ، قمت أيضًا بتجميع عدد من المستودعات التي يمكنك من خلالها إلهام بناء كتلة أكثر تعقيدًا.
- Gutenblocks - مجموعة من القطع من Mathieu Viet مكتوبة بلغة جافا سكريبت مع ES5 Syntax
- مشروع Jetpack Gutenblocks - مجموعة من القطع المجمعة في Jetpack
- قائمة أمثلة لتنفيذ غوتنبرغ بما في ذلك مع Vue.js
مرجع آخر
- مستودع غوتنبرغ الرسمي
- دليل غوتنبرغ