چگونه ستون های سفارشی به داشبورد کاربران وردپرس اضافه کنیم

مقدمه

در بسیاری از پروژه های وردپرس، صفحه ی Dashboard کاربران تنها ستون های پیش فرضی مثل نام کاربری، ایمیل و نقش را نشان می دهد. اما گاهی برای مدیریت بهتر، نیاز دارید اطلاعات خاصی را-مثلاً شماره تماس، تاریخ عضویت یا وضعیت تایید حساب-به صورت مستقیم در جدول کاربران نمایش دهید. افزودن ستون های سفارشی نه تنها کارایی تیم پشتیبانی را افزایش می دهد، بلکه به سرعت به شما امکان می دهد داده های کلیدی را بدون جستجو در پروفایل هر کاربر، ببینید.

در این مقاله، گام به‑گام و به صورت واضح، نحوه ی اضافه کردن ستون های سفارشی به داشبورد کاربران وردپرس را توضیح می دهیم. با استفاده از هوک های مناسب (manage_users_columns و manage_users_custom_column) و یک قطعه کد کوتاه PHP، می توانید بدون نصب افزونه های سنگین، جدول کاربری را به دلخواه خود شخصی سازی کنید. برای انجام این کار تنها به دسترسی به فایل functions.php قالب یا یک پلاگین سفارشی و کمی آشنایی با PHP نیاز دارید-همه چیز به صورت مثال های عملی و قابل کپی‑پیست ارائه می شود.

در ادامه، ابتدا ساختار کلی ستون های پیش فرض را مرور می کنیم، سپس به معرفی هوک ها و نوشتن توابع مورد نیاز می پردازیم و در نهایت نحوه ی نمایش داده ها را با استفاده از توابع بازگشتی (callback) نشان می دهیم. با پیش روی در این راهنما، شما به سرعت می توانید یک جدول کاربری کاملاً متناسب با نیازهای پروژه تان داشته باشید. آماده اید؟ بزنید به کد!

 

فهرست مطالب

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

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

در هستهٔ وردپرس، داشبورد کاربران توسط کلاس WP_Users_List_Table مدیریت می شود و ستون های پیش فرض آن بر پایهٔ آرایه ای از کلید‑ها و برچسب ها ساخته می شوند. این ستون ها به صورت ثابت در اکثر نصب ها ظاهر می شوند و شامل مواردی مانند نام کاربری، نام کامل، آدرس ایمیل، نقش و تعداد نوشته ها هستند. برای هر کلید، یک تابع رندر مخصوص وجود دارد که مقدار مناسب را از دیتابیس می گیرد و در قالب جدول نمایش می دهد. اگر بخواهید این ساختار را به دقت بررسی کنید، می توانید با افزودن کد زیر به functions.php، آرایهٔ ستون ها را چاپ کنید:

  • username – نام کاربری (login)
  • name – نام و نام خانوادگی
  • email – ایمیل کاربر
  • role – نقش (مانند Administrator, Editor)
  • posts – تعداد پست های منتشر شده

این آرایه می تواند با استفاده از فیلتر manage_users_columns تغییر یابد؛ به عبارت دیگر، با افزودن یا حذف کلیدها می توانید ستون های دلخواه خود را اضافه یا حذف کنید. در مرحلهٔ بعدی، برای پر کردن داده های ستون های جدید، باید به هوک manage_users_custom_column متصل شوید تا محتوای هر سلول را به صورت دلخواه تولید کنید. به عنوان مثال، جدول زیر نمونهٔ خلاصه ای از ستون های پیش فرض به همراه کلیدهای مرتبط را نشان می دهد:

کلیدبرچسب نمایشمنبع داده
usernameنام کاربریuser_login
nameنام کاملdisplay_name
emailایمیلuser_email
roleنقشuser_role
postsنوشته هاpost_count

نحوه استفاده از هوک ها و فیلترهای wp_list_table برای افزودن ستون های سفارشی

نحوه استفاده از هوک ها و فیلترهای wp_list_table برای افزودن ستون های سفارشی

برای اضافه کردن ستون های سفارشی به صفحه Users در پیشخوان وردپرس، ابتدا باید به دو هوک اصلی manage_users_columns و manage_users_custom_column متصل شوید. manage_users_columns به شما امکان می دهد آرایه ی ستون های پیش فرض را اصلاح کنید و کلیدهای جدیدی به آن اضافه کنید، در حالی که manage_users_custom_column مسئول رندر محتویات هر سلول بر اساس کلید ستون است. برای شروع، کد زیر را در فایل functions.php یا یک افزونه سفارشی قرار دهید:

  • گام 1: استفاده از فیلتر manage_users_columns برای تعریف کلید و عنوان ستون جدید.
  • گام 2: افزودن تابع به اکشن manage_users_custom_column جهت پر کردن داده های هر سطر بر اساس شناسه کاربر.
  • گام 3: (اختیاری) اگر می خواهید ستون ها قابلیت مرتب سازی داشته باشند، فیلتر manage_users_sortable_columns را نیز پیاده سازی کنید.
  • گام 4: از add_filter و add_action برای بایند کردن توابع به هوک های مذکور استفاده کنید.

در ادامه یک مثال ساده از نحوه ی تعریف دو ستون «شماره تلفن» و «آخرین ورود» آورده شده است. برای راحتی شما، جدول زیر نشان می دهد که کلیدهای ستون چه نامی دارند و توضیح مختصری از محتوای آنها ارائه می شود:

کلید ستونعنوان نمایشمنبع داده
phone_numberشماره تلفنمتغیر متا «phone_number» کاربر
last_loginآخرین ورودمتغیر متا «last_login» یا تاریخچه ی wp_login

پس از افزودن این کدها، ستون های جدید بلافاصله در جدول کاربران ظاهر می شوند و می توانید با استفاده از توابع وردپرس (مانند get_user_meta) داده های دلخواه خود را به روز کنید. به خاطر داشته باشید که برای حفظ سازگاری با افزونه های دیگر، بهتر است از پیشوندی اختصاصی برای کلیدهای سفارشی استفاده کنید؛ به عنوان مثال myplugin_phone_number. این کار باعث جلوگیری از تداخل نام ها و ارتقای عملکرد کلی داشبورد می شود.

کد نمونه برای افزودن، نمایش و ذخیره داده های ستون های جدید

کد نمونه برای افزودن، نمایش و ذخیره داده های ستون های جدید

برای افزودن ستون های سفارشی به صفحه ی Users در پیشخوان وردپرس ابتدا باید به فیلتر manage_users_columns و اکشن manage_users_custom_column دسترسی پیدا کنید. در ادامه یک مثال کامل آورده شده که به شما نشان می دهد چطور یک ستون به نام «شماره ملی» اضافه کنید، مقدار آن را در صفحه لیست کاربران نمایش دهید و سپس با استفاده از هوک personal_options_update داده های وارد شده را ذخیره کنید.

add_filter( 'manage_users_columns', function( $columns ) {
    $columns['national_id'] = __( 'شماره ملی', 'textdomain' );
    return $columns;
} );

add_action( 'manage_users_custom_column', function( $value, $column_name, $user_id ) {
    if ( 'national_id' === $column_name ) {
        $national_id = get_user_meta( $user_id, 'national_id', true );
        return $national_id ? esc_html( $national_id ) : '—';
    }
    return $value;
}, 10, 3 );

add_action( 'show_user_profile', 'add_national_id_field' );
add_action( 'edit_user_profile', 'add_national_id_field' );
function add_national_id_field( $user ) {
    ?>

 

 


نکات بهینه سازی و رفع مشکلات رایج در سفارشی سازی ستون ها

نکات بهینه سازی و رفع مشکلات رایج در سفارشی سازی ستون ها

برای داشتن یک تجربهٔ سریع و بدون لگ در صفحهٔ کاربران، حافظهٔ موقت (transient) را برای مقادیر محاسبه شدهٔ ستون های سفارشی به کار ببرید؛ این کار از فراخوانی های مکرر توابع سنگین جلوگیری می کند. همچنین، کش CSS را به صورت انتزاعی در فایل admin.css اضافه کنید تا مرورگرها استایل های جدید را دوباره بارگذاری نکنند. در زمان افزودن فیلترهای manage_users_columns و manage_users_custom_column حتماً از priority مناسب استفاده کنید تا ستون های افزونهٔ دیگر پیش از یا پس از شما رندر شوند. نکات مهم برای بهینه سازی عبارتند از:

  • اجتناب از حلقهٔ تو در تو در توابع خروجی؛ به جای آن از آرایه های ساده و implode() استفاده کنید.
  • کاهش استفاده از WP_Query داخل حلقهٔ رندر؛ اطلاعات کاربری می تواند با get_user_meta() یا get_userdata() به صورت دسته ای دریافت شود.
  • استفاده از CSS کلاس های WordPress مثل .column‑yourcolumn برای استایل گذاری، تا از تداخل با پوسته های دیگر جلوگیری شود.
  • فعال سازی کش سازی سمت سرور (مانند Object Cache) برای ذخیرهٔ نتایج محاسبه شدهٔ ستون ها.

هنگام مواجهه با مشکلات رایج، ابتدا حالت اشکال زدایی را با define('WP_DEBUG', true); فعال کنید تا پیام های خطا به سرعت آشکار شود. در بسیاری از موارد، تداخل با افزونه های دیگر یا قالب می تواند باعث عدم نمایش یا خراب شدن ستون ها شود؛ برای شناسایی آن، افزونه ها را یک به یک غیرفعال کنید یا از WP_DEBUG_LOG استفاده کنید. جدول زیر چند خطای متداول و راه حل های پیشنهادی را نشان می دهد:

مشکلدلیل محتملراه حل
ستون نمایش نمی شودفیلتر با priority اشتباه یا تداخل با افزونهٔ دیگراولویت فیلتر را به ۱۰ یا ۲۲ تنظیم کنید؛ افزونه های مشابه را بررسی کنید.
محتوا در ستون خالی استداده های متا موجود نیستند یا نام کلید اشتباه استنام کلید متا را با get_user_meta() بررسی کنید؛ مقدار پیش فرض بدهید.
بارگذاری صفحه کند شداستفاده از WP_Query داخل حلقهٔ رندرداده ها را به صورت دسته ای (batch) بارگذاری کنید؛ از کش استفاده کنید.

 

در این مطلب قدم به‑قدم نحوه افزودن ستون های سفارشی به صفحه «کاربران» در پیش خوان وردپرس را بررسی کردیم. با استفاده از هوک manage_users_columns و manage_users_custom_column توانستیم به سادگی عناوین دلخواه خود را به جدول کاربران اضافه کنیم، داده های مربوطه را از متا‑فیلدها یا سایر منبع ها استخراج کنیم و حتی قابلیت مرتب سازی و فیلتر کردن را به این ستون ها بدهیم.

اگر این راهنمایی برایتان مفید بود، حتماً موارد زیر را به خاطر داشته باشید:

  1. پشتیبان گیری قبل از تغییر – هر گونه افزودن یا تغییر کد در functions.php یا یک پلاگین سفارشی می تواند بر عملکرد سایت تأثیر بگذارد؛ بنابراین پیش از اعمال تغییرات، یک بکاپ کامل داشته باشید.
  2. آزمایش در محیط تست – بهتر است ابتدا کدها را در یک محیط staging یا محلی اجرا کنید تا از سازگاری با سایر افزونه ها و قالب ها اطمینان حاصل کنید.
  3. بهینه سازی عملکرد – در صورتی که برای هر کاربر داده های سنگین یا تعداد زیادی ستون می سازید، از کش گذاری مناسب و کوئری های بهینه استفاده کنید تا سرعت پیش خوان تحت تأثیر قرار نگیرد.
  4. مستند سازی – هر تغییر سفارشی را مستند کنید؛ این کار در آینده برای رفع باگ یا ارتقای سایت بسیار کمک کننده خواهد بود.

در نهایت، افزودن ستون های سفارشی می تواند تجربه مدیریتی شما را بهبود بخشد و دسترسی سریع به اطلاعات کلیدی کاربران را فراهم سازد. اگر سؤال یا مشکلی داشتید، خوشحال می شویم در قسمت نظرات یا از طریق ایمیل با ما در میان بگذارید.

موفق باشید! و به یاد داشته باشید که با کمی خلاقیت و دانش فنی می توانید پیش خوان وردپرس را دقیقاً همان گونه که می خواهید، تنظیم کنید. 🌟

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

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