در قسمت قبل ساخت پلاگین سایدبار گوتنبرگ را مورد بررسی قرار دادیم و استفاده کامندهای strat و build را به شما آموزش دادیم. در ادامه با روژان همراه شوید.

حالا که باندل جاوااسکریپت‌مان را داریم باید این فایل را در ویرایشگر گوتنبرگ به صف کنیم. برای این کار باید از enqueue_block_editor_assets استفاده کنیم تا مطمئن شویم که فقط در صفحه گوتنبرگ به صف شوند و در دیگر صفحه‌های wp-admin که نیازی به آن نیست، نرود!

فایل را می توان مثل همین در plugin.php نیز به صف کنیم:

PHP

// Note that it’s a best practice to prefix function names (e.g. myprefix)
function myprefix_enqueue_assets()
{ wp_enqueue_script(
'myprefix-gutenberg-sidebar',
plugins_url( 'build/index.js', __FILE__ )
);
} add_action( 'enqueue_block_editor_assets', 'myprefix_enqueue_assets' );

حالا به صفحه گوتنبرگ بروید اگر همه چیز خوب پیش رفته باشد به خاطر
افزودن src/index.js پیغان هشداری دریافت می کنیم:

مدیریت متادیتا وردپرس در گوتنبرگ

عالیه! حالا آماده‌ایم که کمی کد جاوااسکریپت بنویسیم.

بسته جاوااسکریپت وردپرس را وارد کنید

به منظور افزودن محتوا به سایدبار موجود گوتنبرگ و یا ساخت یک سایدبار خالی باید یک پلاگین جاوااسکریپت گوتنبرگ به ثبت برسانیم. برای این کار باید از برخی توابع و مولفه‌هایی که توسط wp-plugins ، wp-edit-post و wp-i18n (لینک باید بدهم)فراهم شده، استفاده کنیم. این بسته‌ها در متغیر عمومی wp در مرورگر با عناوین wp-plugins ، wp-edit-post و wp-i18n موجود است.

حالا می توانیم توابعی که نیاز داریم را وارد src/index.js کنیم، مخصوصا دو تابع registerPlugin و PluginSidebar.

Javascript

const { registerPlugin } = wp.plugins;
const { PluginSidebar } = wp.editPost;
const { __ } = wp.i18n;

شایان
ذکر است که باید مطمئن شویم این فایل ها را براساس وابستگی داشته باشیم. یعنی باید
فایل index.js قبل از wp-plugins ، wp-edit-post و wp-i18n لود شود. اجازه بدهید آن‌ها را در plugin.php اضافه کنیم:

PHP

function myprefix_enqueue_assets() {
wp_enqueue_script(
'myprefix-gutenberg-sidebar',
plugins_url( 'build/index.js', __FILE__ ),
array( 'wp-plugins', 'wp-edit-post', 'wp-i18n', 'wp-element' )
);
}
add_action( 'enqueue_block_editor_assets', 'myprefix_enqueue_assets' );

توجه:

در کد
بالا ما wp-element را بر اساس وابستگی اضافه کردیم به خاطر اینکه برای نوشتن مولفه
های React از JSX استفاده می‌کنیم. معمولا وقتی قصد ساخت مولفه های React را داریم کل کتابخانه React را وارد می‌کنیم. wp-element یک لایه انتزاعی روی React است به همین دلیل هیجوقت مجبور نیستیم همه React را وارد یا نصب کنیم. به جای آن از wp-element بعنوان متغیر عمومی
استفاده می‌کنیم.

این پکیج‌ها
همچنین بعنوان بسته‌های npm نیز در دسترس هستند. به جای وارد کردن توابع از متغیر wp عمومی (که فقط در مرورگر در دسترس است و
ویرایشگر در مورد آن چیزی نمی‌داند)، می‌توانیم این بسته‌ها را به سادگی با npm نصب و وارد فایل‌مان کنیم.

این بسته‌های
ورپرسی عموما بصورت پیش‌فرض توسط @wordpress وجود دارند.

اجازه
بدهید، دو تا از بسته‌هایی که نیاز داریم را نصب کنیم:

Terminal

npm install @wordpress/edit-post @wordpress/plugins @wordpress/i18n –save

حالا می
توانیم بسته‌مان را وارد index.js کنیم:

Javascript

import { registerPlugin } from "@wordpress/plugins";
import { PluginSidebar } from "@wordpress/edit-post";
import { __ } from "@wordpress/i18n";

مزیت
اینطور وارد کردن بسته این است که ویرایشگر متنی شما می فهمد @wordpress/edit-post و @wordpress/plugins چیست و در نتیجه می تواند مولفه‌ها و توابع را
بصورت خودکار برای شما کامل کند. بر خلاف وارد کردن از wp.plugins ، wp.editpost که فقط در مرورگرها موجود هستند و مرورگر هم که
اصلا نمی‌داند wp چیست!!

مدیریت متادیتا وردپرس در گوتنبرگ

شاید فکر
کنید این روش وارد کردن بسته، سایز باندل شما را هم افزایش می‌دهد که در این مورد
اصلا نگران نباشید. فایل کانفیگ Webpack که با @wordpress/scripts می‌آید دستورالعمل رد شدن از باندل کردن این بسته‌های @wordpress را دارد و به جای آن به متغیر عمومی wp بستگی دارد. بعنوان نتیجه، باندل نهایی در واقع
حاوی بسته های مختلف نیست ولی از طریق متغیر wp آن‌ها را ارجاع می‌دهد.

مدیریت متادیتا وردپرس در گوتنبرگ

عالیه!
در این مقاله بسته ها را از طریق npm وارد می کنیم ولی اگر وارد کردن از طریق متغیر عمومی wp را ترجیح می دهید، خب دیگه خودتون می‌دونید!!

حالا
بیایید از توابعی که وارد کرده‌ایم استفاده کنیم:

ثبت پلاگین سایدبار گوتنبرگ

به منظور
افزودن سایدبار سفارشی به گوتنبرگ، اول باید یک پلاگین ثبت کنیم که با تابع registerPlugin که وارد کردیم باید این کار را انجام دهیم. registerPlugin بعنوان اولین آرگومان یک حلقه منحصر بفرد برای
پلاگین دریافت می‌کند. برای دومین آرگومان آرایه ای از گزینه‌های مختلف داریم. در
میان این گزینه‌ها می توانیم یک نام آیکون (از کتابخانه dashicons .. (باید
لینک بدهیم)) و یک تابع رندر داشته باشیم. این تابع رندر می‌تواند مقادیری
مولفه از بسته wp-edit-post برای ما برگرداند.

در این مثال، ما مولفه PluginSidebar را از wp-edite-post وارد کردیم و با برگرداندن این مولفه در تابع رندر سایدباری در ویرایشگر گوتنبرگ ساختیم. چون می توانستیم مولفه‌های دیگری نیز وارد تابع رندر کنیم، یک  PluginSidebar هم وارد React Fragments کردیم. تابع __ را هم از wp-i18n وارد کردیم که هر رشته خروجی را تفسیر کنیم:

JavaScript

registerPlugin( 'myprefix-sidebar', {
icon: 'smiley',
render: () => {
return (
<>
title={__('Meta Options', 'textdomain')}
>
Some Content


)
}
})

حالا
علاوه بر آیکون چرخ‌دنده یک آیکون دیگر هم در ویرایشگر گوتنبرگ داریم. این آیکون
خنده، سایدبار جدید را که هر چیزی داخل مولفه PluginSidebar هست را دارد، تغییر می‌دهد»

ویرایشگر جدید وردپرس

اگر روی
آیکون ستاره در کنار تیتر سایدبار کلیک کنید، آیکون خنده از بالا نوار حذف می‌شود.
بنابراین برای مواقعی که کاربر آیکون خنده را از بالا با کلیک روی آیکون ستاره حذف
کند به یک راه دیگر برای دسترسی به سایدبارمان داریم. برای این کار میتوانیم مولفه
جدیدی به نام PluginSidebarMoreMenuItem را از wp-edit-post وارد کنیم. حالا باید شرح ورودی را تصحیح کنیم:

JavaScript

import { PluginSidebar, PluginSidebarMoreMenuItem } from "@wordpress/edit-post";

PluginSidebarMoreMenuItem به امکان افزودن یک آیتم به منوی گوتنبرگ را می‌دهد
که با کلیک روی آیکون سه نقطه میتوان جا به جا کرد. ما می خواهیم پلاگین را برای
شامل شدن این مولفه تصحیح کنیم. باید به PluginSidebar یک نام پشتیبانی (Prop) و به  PluginSidebarMoreMenuItem یک هدف Prop با مقادیر یکسان بدهیم.

JavaScript

registerPlugin( 'myprefix-sidebar', {
icon: 'smiley',
render: () => {
return (
<>
target="myprefix-sidebar"
>
{__('Meta Options', 'textdomain')}

name="myprefix-sidebar"
title={__('Meta Options', 'textdomain')}
>
Some Content


)
}
})

حالا در
منو یک “گزینه متا” با آیکون خنده داریم. این آیتم جدید حالا باید به
سایدبار سفارشی ما سوئیچ شود:

مدیریت متادیتای ساید بار گوتنبرگ

حالا در
صفحه گوتنبرگ فضای جدیدی داریم. ما می‌توانیم برخی محتواهای متنی در PluginSidebar را برداشته و مولفه های خود را وارد کنیم.

شما می
توانید سری هم به بسته های ویرایشی (edit-post package
documentation) بزنید. در این بسته مولفه‌های مختلفی وجود
دارد که می‌توانید به پلاگین خود اضافه کنید. این مولفه‌ها می‌تواند سایدبار فعلی
را گسترش دهد و مولفه هایی که می‌خواهیم را به آن اضافه کند. مولفه هایی هم برای
افزودن به منوی بالای سمت راست و بلوک‌های گوتنبرگ نیز وجود دارد.

امیدواریم
این آموزش مورد توجه شما قرار گرفته باشد.

hotnewsفرهنگ و هنر5 سال پیش • dahio.com • 143



دیدگاهتان را بنویسید



مطالب پیشنهادی

۱۰ حقیقت جالب که احتمالا نمی‌دانستید! – بخش سوم

در دنیای اطراف ما بی‌شمار حقیقت جالب در حال رخ دادن وجود دارد که از آن‌ها خبر نداریم. این حقایق در زمینه‌های حیات‌وحش، انسان، معماری، غذا و … هستند که [...]

۱۰ حقیقت جالب که احتمالا نمی‌دانستید! – بخش دوم

در دنیای اطراف ما بی‌شمار حقیقت جالب در حال رخ دادن وجود دارد که از آن‌ها خبر نداریم. این حقایق در زمینه‌های حیات‌وحش، انسان، معماری، غذا و … هستند که [...]

۸ راهکار برای بیشتر مثبت فکر کردن

مثبت اندیشی از رویکردهای سالم در زندگی است و توسط بسیاری از روانشناسان توصیه می‌شود. در این مطلب از لیست‌میکس ۸ راه مثبت اندیشی را با هم مرور می‌کنیم. با [...]

با این ده کتاب، خواندن رمان تاریخی را شروع کنید!

تاریخ شاید برای خیلی از ماها موضوع موردعلاقه نباشد و میل زیادی به خواندن رمان تاریخی نشان ندهیم؛ اما کتاب‌هایی در این حوزه وجود دارند که به‌قدری هیجان‌انگیزند که ممکن [...]

واقعیت های نگران‌کننده‌ای که از آن بی‌خبرید

می‌دانستید کبد با یک ضربه ممکن است از کار بیفتد؟ یا مغز بدون جمجمه آن‌قدر نرم است که از هم می‌پاشد؟ در این لیست ده واقعیت را که هر کدام [...]




ترندها