برای طرح سوال و دسترسی به آموزش ها  کانال ما در تلگرام بپویندید  

افزودن ستون به جداول مدیریت در وردپرس

افزودن ستون به جداول مدیریت در وردپرس:
گاهی اوقات ما نیاز داریم برای دیدن مقدار یا وضعیتی ستون یا ستونهایی به یکی از جداول مدیریت در وردپرس اضافه کنیم برای این کار از هوکهای مختص این کار استفاده میکنیم

manage_edit-{post_type}_columns

manage_{post_type}_posts_custom_column

function add_custom_column_to_post_type_table($columns) {
$columns[‘id’] = ‘ID’;
return $columns;
}
add_filter(‘manage_edit-{post_type}_columns’, ‘add_custom_column_to_post_type_table’);

// Display the value of the custom column
function display_custom_column_value($column, $post_id) {
if ($column === ‘id’) {
echo $post_id;
}
}
add_action(‘manage_{post_type}_posts_custom_column’, ‘display_custom_column_value’, 10, 2);

بجای {post_type} نام post type که میخواهیم ستون را به آن اضافه کنیم قرار میدهیم.اگر نام پست تایپ مورد نظر را ندارید وارد همان بخش شده و آدرس بار را به دنبال مقدار post_type جستجو کنید مثلا برای محصولات ووکامرس به صورت زیر میباشد

wp-admin/edit.php?post_type=product

که یعنی مقدار post_type محصولات ووکامرس product میباشد .

خب برای افزودن ستون ایدی محصول به به صورت زیر عمل میکنیم اگر نمیخواهید کدهای خود را در قالب یک پلاگین قرار دهید میتوانید کدهای خود را در فایل functions.php قالب قرار دهید تا اجرا شوند.

function add_custom_id_column($columns) {
$columns[‘id’] = ‘ID’;
return $columns;
}
add_filter(‘manage_edit-product_columns’, ‘add_custom_id_column’);

// Display the value of the custom column
function display_custom_id_column($column, $post_id) {
if ($column === ‘id’) {
echo $post_id;
}
}
add_action(‘manage_product_posts_custom_column’, ‘display_custom_id_column’, 10, 2);

به همین راحتی.خب با این کار ستون id به انتهای جدول اضافه خواهد شد برای تغییر مکان قرار گیری ستون مثلا بعنوان ستون سوم قرار گیرد به صورت زیر عمل میکنیم

function add_custom_id_column($columns) {
$new_columns = array_slice($columns, 0, 2) ;
$new_columns[‘id’] = ‘ID’;
$remaining_columns = array_slice($columns, 2);
$new_columns = array_merge($new_columns, $remaining_columns);

return $new_columns;
}
add_filter(‘manage_edit-product_columns’, ‘add_custom_id_column’);

برای افزودن ستون sortable از هوکهای زیر استفاده میکنیم

manage_edit-{post_pyte}_sortable_columns

pre_get_posts

خب میخواهیم شماره موبایل را به جدول پستها اضافه کنیم

function add_custom_sortable_column($columns) {
$columns[‘mobile’] = ‘mobile’;
return $columns;
}
add_filter(‘manage_edit-post_sortable_columns’, ‘add_custom_sortable_column’);

 

function display_custom_id_column($column, $post_id) {
if ($column === ‘mobile’)
echo get_post_meta($post_id,’mobile’,true);
}
add_action(‘manage_post_posts_custom_column’, ‘display_custom_id_column’, 10, 2);

 

 

function handle_custom_column_sorting($query) {
if (is_admin() && $query->is_main_query() && $query->get(‘orderby’) === ‘mobile’) {
$query->set(‘orderby’, ‘meta_value’);
$query->set(‘meta_key’, ‘mobile’);
}
}
add_action(‘pre_get_posts’, ‘handle_custom_column_sorting’);

برای سورت کردن از هوک pre_get_posts استفاده میکنیم و چون از مقدار موبایل در متای پست ذخیره شده مقادیر orderby برابر meta_value و مقدار meta_key برابر mobile که نام فیلد ذخیره شدن موبایل در جدول متا میباشد قرار میگیرد.


انتشار

در

توسط

برچسب‌ها:

نظرات

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *