با عرض سلام و وقت به خیر خدمت کاربران سایت پی وی لرن به ویژه کاربرانی که به سیستم مدیریت محتوای قدرتمند وردپرس علاقمند هستند.
به ” دوره متخصص وردپرس ” خوش آمدید!
در این دوره قرار است توسعه و ارتقاء پلاگین های وردپرس را به صورت جامع و کامل بیاموزیم.
فرقی نمی کند که در شرف نوشتن اولین پلاگین خود هستید و یا این که پنجاهمین پلاگین خود را می نویسید! امیدوارم این دوره برایتان مفید باشد.
در جلسه پیش با متای داده های کاربر و کاربرد آن آشنا شدیم.
در ادامه این سر فصل آشنایی با نقش ها و قابلیت های کاربر در ساخت پلاگین می پردازیم.
نقش ها و قابلیت ها دو جنبه مهم وردپرس هستند که به شما امکان می دهند امتیازات کاربران را کنترل کنید.
وردپرس نقش ها و قابلیت های آنها را در جدول گزینه ها در زیر کلید user_roles ذخیره می کند.
یک نقش مجموعه ای از قابلیت ها را برای کاربر تعریف می کند.
به عنوان مثال، آنچه ممکن است کاربر در داشبورد خود مشاهده کند و انجام دهد را می توان از طریق نقش های کاربر تعیین کرد.
به طور پیش فرض ، وردپرس شش نقش دارد:
می توان نقش های بیشتری را نیز اضافه کرده و نقش های پیش فرض تعیین شده را حذف نمود.
می توان به وسیله ()add_role نقش های جدیدی را اضافه کرده و قابلیت هایی جدیدی را به آن افزود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function wporg_simple_role() { add_role( 'simple_role', 'Simple Role', [ 'read' => true, 'edit_posts' => true, 'upload_files' => true, ] ); } // add the simple_role add_action('init', 'wporg_simple_role'); |
بعد از اولین فراخوانی برای ()add_role ، نقش و قابلیت های آن در دیتابیس ذخیره می شود!
فراخوانی های متعدد نمی تواند به کار شما بیاید برای مثال : تغییر لیست قابلیت ها.
برای تغییر لیست قابلیت ها به صورت عمده :
نقش را با استفاده از ()remove_role حذف کرده و با قابلیت های جدید دوباره آن را با استفاده از ()add_role اضافه کنید.
اطمینان حاصل کنید که این کار را فقط درصورتی انجام دهید که قابلیتها با آنچه در گذشته بودند متفاوت باشد.
می توان نقش ها را با ()remove_role کرد.
1 2 3 4 5 6 7 | function wporg_simple_role_remove() { remove_role('simple_role'); } // remove the simple_role add_action('init', 'wporg_simple_role_remove'); |
بعد از اولین فراخوانی برای ()remove_role ، نقش و قابلیت های آن از پایگاه داده حذف می شود!
مثل همیشه فراخوانی های متعدد باز هم بی تاثیر است.
اگر نقش های پیش فرض را حذف نمایید :
قابلیت ها تعریف می کنند که چه نقشی می تواند چه کاری را انجام دهد و چه کاری را انجام ندهد.
از جمله : ویرایش پست ها ، انتشار پست ها و غیره.
انواع پست های سفارشی می توانند به مجموعه خاصی از قابلیتها نیاز داشته باشند.
می توانید قابلیت های جدیدی را برای یک نقش تعریف کنید.
برای بدست آوردن شی نقش از ()get_role استفاده کنید.
سپس از روش ()add_cap آن شی استفاده کنید تا قابلیت جدیدی به آن اضافه شود.
می توان قابلیت های سفارشی را به هر نقشی اضافه کرد.
طبق تنظیمات پیش فرض ادمین وردپرس، قابلیتها تاثیری ندارند اما می توانند برای صفحه های ادمین سفارشی و front-end استفاده شوند.
1 2 3 4 5 6 7 | function wporg_simple_role_remove() { remove_role('simple_role'); } // remove the simple_role add_action('init', 'wporg_simple_role_remove'); |
می توان قابلیت ها را از یک نقش حذف کرد.
فرآیند حذف قابلیت ها شباهت زیادی به فرآیند افزودن آن دارد.
برای حذف آن می توان از متود ()remove_cap برای شی یک نقش استفاده کرد.
با دریافت ()get_role می توان ویژگی نقش را از جمله همه قابلیت های آن را دریافت کرد.
بررسی کنید که کاربر با user_can (یا) دارای نقش یا قابلیت مشخص شده است یا خیر.
1 2 3 4 | user_can( int|object $user, string $capability ); |
در این کد یک undocumented و سه آرگومان و یک args$ که ممکن است شامل شی شود؛ وجود دارد.
به عنوان مثال. شناسه پست را امتحان کنید تا توانایی آن پست خاص را آزمایش کنید.
()current_user_can یک تابع بسته بندی برای ()user_can است که از شیء کاربر فعلی به عنوان پارامتر user$ استفاده می کند.
از این کار در سناریوهایی استفاده کنید که در آن قسمتهای front-end و back-end باید به سطح مشخصی از امتیازات دسترسی داشته باشند و یا نیاز به اصلاح داشته باشند.
در ادامه مثالی برای افزودن لینک ویرایش به فایل تم به کاربری که قابلیت های لازم را دارد؛ ارائه شده است :
1 2 3 | if (current_user_can('edit_posts')) { edit_post_link('Edit', '<p>', '</p>'); } |
از تابع ()current_user_can_for_blog برای آزمایش اینکه کاربر فعلی نقش یا توانایی خاصی در یک وبلاگ خاص دارد استفاده می شود.
1 2 3 4 | current_user_can_for_blog( int $blog_id, string $capability ); |
با ” آشنایی با نقش ها و قابلیت های کاربر در ساخت پلاگین ” سر فصل کاربران یا Users را به پایان رساندیم.
در ادامه این دوره در سر فصل بعدی به جاوا اسکریپت خواهیم پرداخت.
با پی وی لرن همراه باشید.