
Cache و Cookie چیست؟ بررسی کاربرد آنها در HTTP
پروتکل HTTP بهصورت پیشفرض وضعیت درخواستهای قبلی را نگهداری نمیکند. هر درخواست برای سرور یک درخواست مستقل است و سرور...
پست تایپ ها از ابتدا در وردپرس وجود داشتند اما از نسخه 3 به بعد این امکان فراهم شد تا توسعه دهندگان بتوانند post type های مد نظر خود را ایجاد کنند. نوشته ها، برگه ها و رسانه ها همگی پست تایپ هستند.
بهتر است که پست تایپ ها به صورت افزونه پیاده سازی شود تا درصورتی که کاربر تم خود را تغییر داد محتوا از دست نرود.
/**
* Plugin Name: پست تایپ محصولات
* Plugin URI: https://tehranit.net/
* Author: محمدرضا احدیان
* Author URI: https://tehranit.net/
* Description: این پلاگین وظیفه افزودن پست تایپی مخصوص محصولات را بر عهده دارد
* Version: 0.1.0
* License: 0.1.0
*/
//هوک پست تایپ
add_action('init', 'tit_product_pt');
function tit_product_pt()
{
//ثبت لیبل ها
$tit_pt_product_labeles = array(
'name' => 'محصولات',
'singular_name' => 'محصول',
'menu_name' => 'محصولات',
'name_admin_bar' => 'محصولات',
'add_new' => 'محصول جدید',
'add_new_item' => 'افزودن محصول جدید',
'new_item' => 'محصول جدید',
'edit_item' => 'ویرایش محصول',
'view_item' => 'نمایش محصول',
'all_items' => 'همه محصولات ',
'search_items' => 'جستجو محصولات',
'parent_item_colon' => 'مادر',
'not_found' => 'محصول یافت نشد',
'not_found_in_trash' => 'محصول در سطل آشغال یافت نشد',
'featured_image' => 'تصویر محصول',
'set_featured_image' => 'انتخاب تصویر برای محصول',
'remove_featured_image' => 'حذف تصویر محصول',
'use_featured_image' => 'استفاده از تصویر برای محصول',
'archives' => 'آرشیو محصولات',
'insert_into_item' => 'TehranIT insert_into_item',
'uploaded_to_this_item' => 'TehranIT uploaded_to_this_item',
'filter_items_list' => 'TehranIT filter_items_list',
'items_list_navigation' => 'TehranIT items_list_navigation',
'items_list' => 'TehranIT items_list',
);
//ثبت مواردی که پشتیبانی میشود
$tit_pt_product_supports = array(
'title',
'editor',
'excerpt',
'author',
'thumbnail',
'comments',
'revisions',
'custom-fields',
);
//ثبت تنظیمات
$args = array(
'public' => true,
'labels' => $tit_pt_product_labeles,
'supports' => $tit_pt_product_supports,
'publicly_queryable' => true,
'exclude_from_search' => false,
'show_ui' => true,
'show_in_nav_menus' => true,
'show_in_menu' => true,
'show_in_admin_bar' => true,
'menu_position' => 100,
'menu_icon' => 'dashicons-cart',
'has_archive' => true,
'rewrite' => array('slug' => 'product'),
'taxonomies' => array('post_tag', 'category'),
);
//رجیستر کردن پست تایپ
register_post_type('tit_pt_Pproduct', $args);
}توجه : وقتی پست تایپ رجیستر میشود حتما باید یک بار پیوند های یکتا یا همان پرمالینک ها فلاش شود. برای اینکه این کار به صورت دستی انجام نشود و توسط کد نویسی صورت گیرد حتما بخش اکتیو شدن افزونه را به صورت زیر بنویسید، تا پیوند های یکتا به صورت خود کار فلاش شوند و به مشکل برنخورند.
در کد زیر ما فانکشن پست تایپ را نیز آوردیم تا برای بار اول که افزونه فعال میشود وردپرس آن را بشناسد و توسط دستور flush_rewrite_rules پیوند های یکتای خود را فلاش کردیم. توجه داشته باشید که به خود هوک پست تایپ کاری نداریم در این مرحله و فقط فانکشن آن را در کد خود فراخوانی کردیم.
register_activation_hook(__FILE__, 'tit_activation_plugin');
function tit_activation_plugin(){
tit_product_pt();
flush_rewrite_rules();
}در زمان غیر فعال کردن افزونه نیز باید یک بار پیوند های یکتای خود را فلاش کنیم که برای این کار از کد های زیر استفاده میکنیم.
register_deactivation_hook(__FILE__, 'tit_deactivation_plugin');
function tit_deactivation_plugin(){
flush_rewrite_rules();
}اگر مقدار آن true باشد ما در سمت فرانت به آن دسترسی خواهیم داشت. و اگر مقدار آن false باشد ما فقط از طریق کد نویسی به آن دسترسی خواهیم داشت.
اگر مقدار public برابر با true باشد موارد زیر به صورت پیش فرض مقادیر زیر را میگیرند. البته میتوان آن ها را تغییر داد.
'exclude_from_search' => false
'publicly_queryable' => true
'show_in_nav_menus' => true
'show_ui' => trueاگر مقدار public برابر با false باشد موارد زیر به صورت پیش فرض مقادیر زیر را میگیرند. درست برعکس موارد بالا.
'exclude_from_search' => true
'publicly_queryable' => false
'show_in_nav_menus' => false
'show_ui' => falseاگر مقدار آن برابر false باشد مانند سایر نوشته ها در سرچ ظاهر میشود و اگر true باشد در سرچ وردپرس نمایش داده نمیشود.
اگر بابر با false باشد از طریق فرانت و آدرس بار دیگر نمیشود به آن دسترسی داشت یعنی در پنل ادمین وجود دارد و در سمت فرانت یا سایت دسترسی به آن مقدور نیست. مثلا مثل پست های وردپرس که نامک یا url ای دارند که بتوان به آن دسترسی داشت از طریق مرورگر، اگر false باشد این امکان غیر فعال میشود، اگر مقدار برابر true باشد دقیقا عکس عمل میکند.
اگر مقدار آن false باشد دیگر در پنل ادمین نمایش داده نمیشود حتی در منو داشبورد مثلا زمانی که بخواهیم خودمان یک رابط کاربری برای پست تایپ مان تولید و طراحی کنیم کاربرد دارد. و اگر مقدار برابر true باشد دقیقا عکس عمل میکند.
اگر مقدار آن false باشد دیگر نمیتوان از بخش منو ها آن را به فهرست یا منو ای اضافه کرد. و اگر مقدار برابر true باشد دقیقا عکس عمل میکند اگر در بخش منو ها نیامد باید آن را از بخش تنظیمات صفحه اضافه کنید.
اگر false باشد دیگر در منوی پنل ادمین نمایش داده نمیشود و فرق آن با publicly_queryable در این است که در show_in_menu فقط منو حذف شده و از طریق url میشود به آن دسترسی داشت اما در publicly_queryable از طریق url هم نمیشود به آن دسترسی داشت. و اگر مقدار برابر true باشد دقیقا عکس عمل میکند.
اگر مقدار آن برابر true باشد در ادمین بار وردپرس در بخش تازه ها نام آن اضافه میشود. و اگر مقدار برابر false باشد دقیقا عکس عمل میکند.
مقدار عددی میگیرد و جای پست تایپ ما در منوی پنل وردپرس مشخص میکند. یکسری اعداد از پیش تعریف شده نیز وجود دارد که نمیتوان آن را انتخاب کرد میتوانید از لینک زیر اعداد را مشاهده کنید.
https://developer.wordpress.org/reference/functions/add_menu_page/برای قرار دادن آیکون در منوی پنل ادمین استفاده میشود که میتوان url یک آیکون با فرمت png به آن داد و یا اینکه به لینک زیر رفته و اسم یک آیکون وردپرسی را به آن داد.
https://developer.wordpress.org/resource/dashiconsبیان میکند که آیا برای پست تایپ شما صفحه آرشیو در نظر بگیرم یا خیر و مقدار true یا false میگیرد. آدرس آن هم میشود نام دامین / نام پست تایپ.
شما میتوانید از قابلیتهای پیشفرض نوع post و page برای نویسنده نوع پست سفارشی جدید استفاده کنید یا با استفاده از پارامتر capabilities برای هر قابلیت وضعیتی تعیین کنید. مقدارهای قابل تعیین برای این پارامتر : page یا post میباشد.
برای تعیین سطح دسترسی استفاده میشود مثلا فقط ادمین دسترسی داشته باشد و … .
بیان میکند که پست تایپ شما از چه موارد یا سکشن هایی میتواند پشتیبانی کند. مثل تایتل، ادیتور، تصویر شاخص، کاستوم فیلد، کامنت و …. . همچنین یک آرایه میگیرد که در آن مواردی که میخواهیم ساپورت کند را می آوریم مثلا اگر بخواهیم از کامنت پشتیبانی نکند کافی است که آن را در آرایه خود نیاوریم.
'supports' => array(
'title',
'editor',
'excerpt',
'author',
'thumbnail',
'comments',
'revisions',
'custom-fields',
)توسط این بخش میتوانیم نام پست تایپ خود در url را تغییر دهیم. یک آرایه میگیرد و کافی است مقدار slug را در آن مقدار دهی کنیم.
برای افزودن دسته و برچسب به پست تایپ ها به کار میرود که هم میتوانیم از دسته و برچسب پیش فرض وردپرس استفاده کنیم هم میتوانیم برای آن با رجیستر کردن یک taxonomy جدید دسته و برچسب اختصاصی تولید کنیم.
نکته : در نامگذاری اسلاگ پست تایپ، تعداد کاراکتر نباید بیشتر از ۲۰ کاراکتر باشد.
صفحه آرشیو : برای ساخت یک صفحه اختصاصی برای صفحه آرشیو کافی است که در تم خود فایلی با نام archive-post type name.php بسازیم post type name در اصل همان نام پست تایپ ما است که در مثال بالا TehranIT_book بود.
archive-post type name.phpصفحه سینگل : برای ساخت یک صفحه اختصاصی برای صفحه سینگل پست تایپ خود کافی است که در تم خود فایلی با نام single-post type name.php بسازیم post type name در اصل همان نام پست تایپ ما است که در مثال بالا TehranIT_book بود.
single-post type name.phpدر بخش تنظیمات کوئری یا همان args میتوان نوع پست تایپ ها، کاگوری، تعداد پست و … را تنظیم کرد. حلقه باید در تگ php باشد. برای مشاهده سایر مدل های حلقه میتوان عبارت wordpress loop post type را سرچ کرد.
//تنظیمات کوئری
$args = array(
'post_type' => 'TehranIT_book',
'posts_per_page' => 3
);
//کوئری زدن
$the_query = new WP_Query( $args );
//حلقه
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ){
$the_query->the_post();
the_title();
echo '';
}
}else{
echo 'no posts fund';
}
//ریست کردن پست دیتا
wp_reset_postdata();از کلمات کلیدی و تگهای مربوط به قسمت ۱ – ایجاد پست تایپ / Post Type سفارشی در وردپرس دیدن فرمایید.

متاسفانه تاکنون پیامی برای این مطلب ثبت نشده است. شما اولین شخصی باشید که پیام میگذارد.

تهران آی تی با افتخار خدمات زیر را ارائه میدهد.

طراحی سایت مدرن با ساختار استاندارد و تجربه کاربری مناسب انجام میشود تا اعتماد کاربر بیشتر و مسیر رشد کسبوکار بهتر شکل بگیرد.

توسعه سایت و بخشهای اختصاصی با ASP.NET انجام میشود تا امنیت، سرعت و قابلیت توسعه بالا باشد و برای پروژههای جدی مناسب شود.

سایت وردپرسی با مدیریت آسان و تنظیمات درست طراحی میشود تا ظاهر حرفهای باشد و با بهینهسازی، سرعت و سئو هم بهتر شود.

طراحی رابط و تجربه کاربری باعث میشود مسیر کاربر سادهتر شود، تعامل بیشتر و تصمیمگیری برای خرید یا تماس راحتتر انجام شود.

سئو با بهبود ساختار، محتوا و بخش فنی انجام میشود تا رتبه گوگل بهتر شود، بازدید هدفمند افزایش یابد و نتیجه پایدار ایجاد گردد.

با بهینهسازی تصاویر، کدها و کش، زمان بارگذاری کمتر میشود تا تجربه کاربر بهتر شود و امتیاز فنی و سئو هم تقویت گردد.

محتوا بر اساس کلمات کلیدی و نیاز مخاطب تولید میشود تا ورودی گوگل بیشتر شود، اعتماد ساخته و کاربران راحتتر به مشتری تبدیل شوند.

با تبلیغات هدفمند و برنامه رشد، دیده شدن بهتر میشود تا مشتری بیشتری جذب شود و فروش آنلاین افزایش یابد و هزینهها هم کنترل شود.

پشتیبانی شامل رفع خطا، بهروزرسانی و مراقبت فنی است تا سایت پایدار بماند و همیشه بدون مشکل و با عملکرد مناسب در دسترس باشد.

با تنظیمات امنیتی و بررسی آسیبپذیریها، ریسک نفوذ کمتر میشود تا اطلاعات سایت و کاربران حفظ شود و اعتماد مشتری از بین نرود.

با بررسی نیاز و هدف شما، مسیر درست پیشنهاد میشود تا تصمیمگیری دقیقتر و زمان و هزینه بهتر مدیریت گردد و نتیجه قویتر شود.

راهکارهای هوشمند برای خودکارسازی و تحلیل ارائه میشود تا دقت بیشتر و گزارشگیری سادهتر و تصمیمها بهتر گرفته شوند.
فرم افزودن دیدگاه
با ارسال نظرات خود ما را در ایجاد محتوای بهتر کمک کنید.