- آموزش زمان بندی رویدادها با WP Cron در وردپرس
- مقدمه ای بر توسعه افزونه
- افزونه چیست ؟
- مبانی افزونه
- نیازمندی های هدر
- درج یک مجوز نرم افزار در افزونه
- قلاب های فعال و غیر فعال سازی
- متدهای حذف در سایت های وردپرس
- امنیت افزونه
- بررسی قابلیت های کاربر
- اعتبار سنجی داده ها
- امنیت ورودی
- امنیت خروجی
- Nonce ها
- قلاب ها
- اکشن ها (Actions)
- فیلترها (Filters)
- ایجاد قلاب های سفارشی
- تاپیک های پیشرفته
- منوهای مدیریت
- منوهای سطح بالا
- زیر منوها
- کدهای کوتاه
- مبانی کدهای کوتاه
- کدهای کوتاه جفتی
- کدهای کوتاه پارامتردار
- تنظیمات
- API های تنظیمات
- ایجاد و استفاده از گزینه ها
- گزینه های تکی و آرایه ای
- صفحه تنظیمات سفارشی
- فراداده (Metadata)
- ایجاد و مدیریت فراداده نوشته
- ایجاد متاباکس های سفارشی
- دریافت فراداده
- انواع نوشته سفارشی
- ایجاد پست تایپ سفارشی
- کار با داده های پست تایپ ها
- طبقه بندی یا Taxonomy در وردپرس
- ایجاد و کار با طبقه بندی های سفارشی
- کار با متادیتا (Metadata) کاربران در وردپرس
- ایجاد و مدیریت کاربران در وردپرس
- نقش ها و قابلیت های کاربران در وردپرس
- آموزش استفاده از سرویس HTTP API در وردپرس
- آموزش استفاده از ایجکس (Ajax) در وردپرس
- آموزش استفاده از Transients برای کش کردن در وردپرس
- آموزش WP-Cron وردپرس
- آموزش استفاده از جیکوئری (jQuery) در وردپرس
- آموزش کار با PHP سمت سرور و Enqueue در وردپرس
- قلاب کردن WP-Cron وردپرس به سیستم زمان بندی سرور
وردپرس در حالت اولیه از پنج نوع پست تایپ (نوشته، برگه، ضمیمه، رونوشت، فهرست) استفاده می کند که به هنگام طراحی افزونه می توانید از آنها استفاده کنید. اما گاهی اوقات پیش می آید که بخواهید برای خودتان پست تایپ سفارشی ایجاد کنید.
اضافه کردن پست تایپ
برای ایجاد پست تایپ جدید می توانید از تابع register_post_type() استفاده کنید. به مثال زیر توجه کنید:
add_action( 'init', 'create_post_type' );
//Registers the Product's post type
function create_post_type() {
register_post_type( 'acme_product',
array(
'labels' => array(
'name' => __( 'محصولات' ),
'singular_name' => __( 'محصول' )
),
'public' => true,
'has_archive' => true,
)
);
}
کدهای فوق یک پست تایپ جدید برای محصولات اضافه می کنند. آرگومان هایی که در اینجا برای این تابع استفاده شد:
- labels – نام پست تایپ در حالت جمعی و تکی را مشخص می کند.
- public – فعال کردن قابلیت نمایش پست تایپ در سایت و پیشخوان مدیریت وردپرس.
- has_archive – مشخص می کند که محتوای پست تایپ می تواند آرشیو داشته باشد.
توجه: تابع register_post_type() را باید قبل از هوک های admin_menu و بعد از after_setup_theme استفاده کنید.
تمرین برای انتخاب نام
انتخاب نام برای پست تایپ ها بسیار مهم است. برای مثال در کدهای بالا ما از acme_product استفاده کردیم. کلمه acme پیشوندی است که باعث می شود تا امکان تداخل نامی به وجود نیاید. به عبارتی اگر بخواهید از کلمه عام مانند product استفاده کنید، آن موقع این احتمال وجود دارد که این نام به دلیل به کار گیری در افزونه های دیگر دچار مشکل تداخل شود.
چند نکته:
- برای پیشوند از wp_ استفاده نکنید. ممکن است این نام در آینده توسط خود فایل های هسته وردپرس به کار گرفته شود.
- تعداد کاراکترهای نام پست تایپ از ۲۰ بیشتر نشود.
آدرس URL
اگر بخواهیم که پست تایپ های سفارشی که ایجاد می کنیم، از طریق یک آدرس URL خاص در دسترس باشند، آن موقع باید آدرس آنها را نیز مشخص کنیم. بدین منظور به همان مثال بالایی دستور مربوط به آدرس را اضافه می کنیم:
add_action( 'init', 'create_post_type' );
//Registers the Product's post type
function create_post_type() {
register_post_type( 'acme_product',
array(
'labels' => array(
'name' => __( 'محصولات' ),
'singular_name' => __( 'محصول' )
),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'products'),
)
);
}
با بررسی کدها می توانید متوجه شود که تنها دستور زیر اضافه شده است:
‘rewrite’ => array(‘slug’ => ‘products’),
در نهایت نتیجه کار به حالت زیر درخواهد آمد:
https://example.com/products/%product_name%






