
فهرست محتوا
وردپرس بهعنوان یکی از قدرتمندترین سیستمهای مدیریت محتوا، این امکان را به شما میدهد تا با استفاده از پست تایپهای سفارشی، انواع مختلف محتوا را در سایت خود مدیریت کنید. این پست تایپها میتوانند برای انواع مختلف محتوا مانند محصولات، رویدادها، مقالات، خدمات و موارد دیگر استفاده شوند. اگرچه بسیاری از کاربران از افزونهها برای ایجاد پست تایپهای سفارشی استفاده میکنند، اما در این مقاله میخواهیم نحوه ساخت پست تایپ سفارشی در وردپرس با کد PHP یا (Build Custom Post Typing in WordPress with PHP Code) را توضیح دهیم تا شما بتوانید این کار را بدون نیاز به افزونهها و تنها با کدنویسی انجام دهید.
چرا ساخت پست تایپ سفارشی در وردپرس با کد PHP اهمیت دارد؟
وردپرس بهطور پیشفرض پست تایپهای مختلفی مانند پستها و صفحات را برای کاربران فراهم میکند. اما وقتی نیاز به ایجاد محتواهایی دارید که از قالبهای معمولی پستها و صفحات خارج هستند، باید پست تایپهای سفارشی را ایجاد کنید. این نوع پست تایپها به شما این امکان را میدهند که محتوای خود را بهطور دقیقتری مدیریت کرده و ویژگیهای خاصی برای هر نوع محتوا در نظر بگیرید.
برای مثال، ممکن است بخواهید یک پست تایپ سفارشی برای محصولات ایجاد کنید که شامل ویژگیهای خاص مانند قیمت، موجودی و توضیحات فنی باشد. با ساخت پست تایپ در وردپرس با کد PHP، میتوانید این ویژگیها را به راحتی تعریف کرده و مدیریت کنید.

مراحل ساخت پست تایپ سفارشی در وردپرس با کد PHP
مراحل ساخت پست تایپ در وردپرس با کد پی اچ پی شامل موارد زیر است:
مرحله 1: دسترسی به فایل functions.php
برای ساخت پست تایپ سفارشی در وردپرس با کد PHP، شما باید فایل functions.php قالب خود را ویرایش کنید. این فایل در مسیر /wp-content/themes/theme_name/functions.php قرار دارد و تمام تنظیمات سفارشیسازی قالب و عملکردهای اضافی در آن قرار میگیرند. بهطور معمول، این فایل برای افزودن کدهای PHP استفاده میشود.

مرحله 2: استفاده از تابع register_post_type()
برای ایجاد پست تایپ سفارشی، باید از تابع register_post_type() استفاده کنید. این تابع دو پارامتر اصلی دریافت میکند:
- $post_type: نام پست تایپ سفارشی که میخواهید ایجاد کنید.
- $args: آرگومانها یا تنظیمات مربوط به پست تایپ. این آرگومانها ویژگیهایی را مانند نمایش در منو، قابلیت پشتیبانی از ویرایشگر متن و دیگر ویژگیها تعیین میکنند.
در اینجا یک مثال ساده برای ایجاد پست تایپ سفارشی به نام “محصولات” آورده شده است:
php
// ساخت پست تایپ سفارشی محصولات
function product_init() {
// تعریف برچسبها برای پست تایپ
$labels = array(
'name' => 'محصولات',
'singular_name' => 'محصول',
'add_new' => 'اضافه کردن محصول جدید',
'add_new_item' => 'اضافه کردن محصول جدید',
'edit_item' => 'ویرایش محصول',
'new_item' => 'محصول جدید',
'all_items' => 'تمام محصولات',
'view_item' => 'مشاهده محصول',
'search_items' => 'جستجوی محصولات',
'not_found' => 'محصولی یافت نشد',
'not_found_in_trash' => 'هیچ محصولی در زبالهدان یافت نشد',
'parent_item_colon' => '',
'menu_name' => 'محصولات',
);
// تنظیمات پست تایپ
$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => true,
'show_ui' => true,
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => array('slug' => 'product'),
'query_var' => true,
'menu_icon' => 'dashicons-cart', // نماد منو
'supports' => array(
'title', // عنوان محصول
'editor', // ویرایشگر
'excerpt', // خلاصه
'custom-fields', // فیلدهای سفارشی
'comments', // نظرات
'revisions', // نسخهها
'thumbnail', // تصویر شاخص
'author', // نویسنده
'page-attributes'// ویژگیهای صفحه
)
);
register_post_type('product', $args); // ثبت پست تایپ
// ثبت طبقهبندی (taxonomy) برای محصولات
register_taxonomy('product_category', 'product', array(
'hierarchical' => true, // آیا طبقهبندی سلسلهمراتبی است؟
'label' => 'دستهبندی محصولات',
'query_var' => true,
'rewrite' => array('slug' => 'product-category') // ساخت URL مخصوص
));
}
add_action('init', 'product_init'); // اجرای تابع در زمان init
مرحله 3: شرح پارامترهای register_post_type()
در اینجا به بررسی برخی از مهمترین پارامترهای تابع register_post_type() میپردازیم:
labels
این پارامتر شامل مجموعهای از برچسبها است که نحوه نمایش پست تایپ را در پنل مدیریت وردپرس کنترل میکند. بهطور مثال، برچسبهای مانند “افزودن محصول جدید” و “تمام محصولات” در اینجا تعریف میشوند.
public
با تنظیم این گزینه به true، پست تایپ برای بازدید عموم قابل دسترس میشود.
has_archive
این ویژگی مشخص میکند که آیا پست تایپ شما باید یک صفحه آرشیو داشته باشد یا خیر.
supports
ویژگیهایی که پست تایپ شما پشتیبانی میکند. بهطور مثال، اگر میخواهید که ویرایشگر متن و تصویر شاخص در این پست تایپ نمایش داده شوند، این ویژگیها باید در این آرایه گنجانده شوند.
rewrite
این پارامتر به شما این امکان را میدهد که URL پست تایپ خود را سفارشی کنید. برای مثال، با تنظیم slug به “product”، آدرس URL هر محصول به شکل /product/your-product-name خواهد بود.
مرحله 4: استفاده از register_taxonomy() برای ایجاد طبقهبندی
در بسیاری از موارد، شما نیاز به طبقهبندی برای دستهبندی محتواهای پست تایپ خود دارید. در اینجا برای پست تایپ “محصولات”، یک طبقهبندی به نام “دستهبندی محصولات” ایجاد کردهایم. با استفاده از تابع register_taxonomy(), میتوانیم این طبقهبندی را ثبت کرده و آن را به پست تایپ “محصولات” متصل کنیم.
مرحله 5: مدیریت پست تایپها در پنل مدیریت
پس از اضافه کردن کدهای فوق به فایل functions.php و ذخیره تغییرات، یک منوی جدید تحت عنوان “محصولات” در پنل مدیریت وردپرس شما ظاهر خواهد شد. این منو به شما این امکان را میدهد که محصولات خود را مشاهده، اضافه، ویرایش و حذف کنید. همچنین میتوانید برای هر محصول دستهبندی خاصی تعیین کنید و به راحتی محتوای خود را مدیریت نمایید.
در آخر…
ساخت پست تایپ سفارشی در وردپرس با کد PHP به شما این امکان را میدهد که انواع مختلف محتوا را بهطور دقیقتری مدیریت کنید و تجربه کاربری بهتری را برای خود و بازدیدکنندگان سایت فراهم آورید. این روش همچنین به شما کنترل کاملتری بر ویژگیها و نمایش پست تایپها در سایت میدهد و نیازی به نصب افزونههای اضافی نخواهید داشت.
امیدواریم که با استفاده از این آموزش، شما بتوانید ساخت پست تایپ در وردپرس با PHP را به راحتی انجام دهید و سایت خود را به سطح جدیدی از حرفهای بودن ارتقا دهید.
دیدگاهتان را بنویسید