تاریخ آخرین بروزرسانی به لیست نوشته‌ها و محصولات در مدیریت وردپرس

افزودن ستون تاریخ آخرین بروزرسانی به لیست نوشته‌ها و محصولات در مدیریت وردپرس

آیا تا به حال برای شما پیش آمده که در بخش مدیریت وردپرس، برای پیدا کردن آخرین نوشته‌ها یا محصولاتی که به‌روزرسانی شده‌اند، مجبور شوید تک‌تک آن‌ها را بررسی کنید؟ به‌طور پیش‌فرض، وردپرس در لیست نوشته‌ها (Posts) و محصولات (Products) ستونی برای نمایش تاریخ آخرین بروزرسانی (Last Modified Date) ندارد و تنها تاریخ انتشار (Published Date) را نمایش می‌دهد. این موضوع برای مدیران سایت، نویسندگان و ادمین‌های فروشگاه که نیاز به پیگیری تغییرات محتوا و مدیریت به‌روزرسانی‌ها دارند، بسیار چالش‌برانگیز است. در این مقاله از مجموعه مقالات آموزشی وردپرس، یک کد کاربردی و استاندارد برای افزودن ستون تاریخ آخرین بروزرسانی به لیست نوشته‌ها و محصولات ووکامرس در بخش مدیریت ارائه می‌دهیم. با استفاده از این کد، یک ستون جدید با عنوان “به‌روز رسانی” به لیست‌ها اضافه می‌شود که تاریخ آخرین تغییر هر مطلب یا محصول را نمایش می‌دهد و همچنین قابلیت مرتب‌سازی بر اساس این تاریخ را نیز دارد. این کار به مدیریت بهتر محتوا، پیگیری تغییرات و افزایش کارایی تیم تحریریه و مدیریت فروشگاه کمک می‌کند.

چالش نبود ستون تاریخ آخرین بروزرسانی در لیست‌های مدیریت وردپرس

در بخش مدیریت وردپرس، صفحات لیست (مانند لیست نوشته‌ها، صفحات، محصولات و سفارشات) اطلاعات مهمی مانند عنوان، نویسنده، دسته‌بندی، برچسب‌ها، تاریخ انتشار و وضعیت را نمایش می‌دهند. اما یکی از اطلاعات کلیدی که در این لیست‌ها وجود ندارد، تاریخ آخرین بروزرسانی است. این缺失 برای تیم‌های مدیریت محتوا و فروشگاه‌های اینترنتی مشکلات زیر را ایجاد می‌کند:

  • سخت‌تر شدن پیگیری تغییرات: برای بررسی اینکه کدام مطالب یا محصولات به‌روزرسانی شده‌اند، باید هر کدام را به‌طور جداگانه باز کرد.
  • عدم شناسایی محتوای قدیمی: بدون مشاهده تاریخ بروزرسانی، تشخیص محتوای قدیمی و نیازمند به‌روزرسانی دشوار است و این موضوع می‌تواند به سئو آسیب بزند.
  • کاهش کارایی تیم: نویسندگان و ادمین‌ها زمان زیادی را صرف پیدا کردن آخرین تغییرات می‌کنند و این موضوع بهره‌وری را کاهش می‌دهد.
  • عدم تطابق با نیازهای سئو: موتورهای جستجو به محتوای به‌روز اهمیت می‌دهند و مدیران سایت باید بتوانند به‌سرعت محتوای به‌روزرسانی‌شده را شناسایی کنند.

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

راهکار افزودن ستون تاریخ آخرین بروزرسانی با کد اختصاصی

برای افزودن ستون تاریخ آخرین بروزرسانی به لیست نوشته‌ها و محصولات، از هوک‌ها و فیلترهای استاندارد وردپرس استفاده می‌کنیم. این راهکار شامل چند مرحله اصلی است:

  1. افزودن ستون جدید: با استفاده از فیلتر manage_edit-{post_type}_columns، یک ستون جدید با عنوان “به‌روز رسانی” به لیست ستون‌های موجود اضافه می‌شود.
  2. پر کردن محتوای ستون: با استفاده از هوک manage_{post_type}_posts_custom_column، تابع get_the_modified_date() برای دریافت تاریخ آخرین بروزرسانی هر مطلب یا محصول فراخوانی می‌شود و در ستون نمایش داده می‌شود.
  3. قابل مرتب‌سازی کردن ستون: با استفاده از فیلتر manage_edit-{post_type}_sortable_columns، ستون جدید را قابل مرتب‌سازی (Sortable) می‌کنیم تا کاربران بتوانند بر اساس تاریخ بروزرسانی، لیست را مرتب کنند.
  4. تنظیم عرض ستون با CSS: با استفاده از هوک admin_head و افزودن CSS سفارشی، عرض ستون را تنظیم کرده و در نمای موبایل نیز آن را مخفی می‌کنیم تا از شلوغ شدن صفحه جلوگیری شود.

این روش برای هر دو نوع پست “post” (نوشته‌ها) و “product” (محصولات ووکامرس) به‌طور جداگانه پیاده‌سازی شده است و کاملاً استاندارد، سبک و بدون نیاز به نصب افزونه است.

کد کامل افزودن ستون تاریخ آخرین بروزرسانی به لیست نوشته‌ها و محصولات

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

/*
* Add Last Modified Date Column to Admin List View for Posts and Products
* Adds a sortable 'Last Modified' column to the admin list view for Posts and Products.
* Mahdi Jafarzadeh
* https://www.wpwm.ir/
*/

// ============================================================
// 1. POSTS SECTION
// ============================================================

// Add column to posts list
add_filter('manage_edit-post_columns', 'modified_column_register_posts');
function modified_column_register_posts($columns) {
$columns['modified_list'] = __('به روز رسانی', 'wordpress');
return $columns;
}

// Display content in the column for posts
add_action('manage_posts_custom_column', 'modified_column_display_posts', 10, 2);
function modified_column_display_posts($column_name, $post_id) {
// Only run for post type 'post'
if (get_post_type($post_id) !== 'post') {
return;
}
if ('modified_list' !== $column_name) {
return;
}
echo get_the_modified_date();
}

// Make the column sortable for posts
add_filter('manage_edit-post_sortable_columns', 'modified_column_register_sortable_posts');
function modified_column_register_sortable_posts($columns) {
$columns['modified_list'] = 'modified';
return $columns;
}

// ============================================================
// 2. PRODUCTS SECTION (WooCommerce)
// ============================================================

// Add column to products list
add_filter('manage_edit-product_columns', 'modified_column_register_products');
function modified_column_register_products($columns) {
$columns['modified_list'] = __('به روز رسانی', 'woocommerce');
return $columns;
}

// Display content in the column for products
add_action('manage_product_posts_custom_column', 'modified_column_display_products', 10, 2);
function modified_column_display_products($column_name, $post_id) {
// Only run for post type 'product'
if ('product' !== get_post_type($post_id)) {
return;
}
if ('modified_list' !== $column_name) {
return;
}
echo get_the_modified_date();
}

// Make the column sortable for products
add_filter('manage_edit-product_sortable_columns', 'modified_column_register_sortable_products');
function modified_column_register_sortable_products($columns) {
$columns['modified_list'] = 'modified';
return $columns;
}

// ============================================================
// 3. STYLING: Adjust column width and responsiveness
// ============================================================
add_action('admin_head', 'fix_modified_column_width');
function fix_modified_column_width() {
$screen = get_current_screen();
// Only apply on post and product list screens
if ($screen && ('edit-post' === $screen->id || 'edit-product' === $screen->id)) {
echo '<style>
.column-modified_list {
width: 10%;
white-space: nowrap;
}
/* Hide column on mobile screens for better readability */
@media screen and (max-width: 782px) {
.column-modified_list {
display: none;
}
}
</style>';
}
}

نحوه عملکرد کد به صورت گام به گام

در این بخش، هر بخش از کد را به صورت دقیق بررسی می‌کنیم و نحوه عملکرد آن را توضیح می‌دهیم:

  1. خطوط ۱۰ تا ۲۳ – بخش مربوط به نوشته‌ها (Posts):
    • خطوط ۱۲ تا ۱۵: با استفاده از add_filter('manage_edit-post_columns', 'modified_column_register_posts')، یک فیلتر به هوک manage_edit-post_columns اضافه می‌کنیم. این هوک برای تعیین ستون‌های نمایش داده شده در لیست نوشته‌ها استفاده می‌شود. تابع modified_column_register_posts یک ستون جدید با کلید modified_list و عنوان “به‌روز رسانی” به آرایه ستون‌ها اضافه می‌کند.
    • خطوط ۱۸ تا ۲۳: با استفاده از add_action('manage_posts_custom_column', 'modified_column_display_posts', 10, 2)، یک عملکرد به هوک manage_posts_custom_column اضافه می‌کنیم. این هوک برای هر سطر در لیست نوشته‌ها فراخوانی می‌شود. تابع modified_column_display_posts ابتدا با get_post_type($post_id) !== 'post' بررسی می‌کند که نوع پست “post” باشد. سپس با 'modified_list' !== $column_name بررسی می‌کند که ستون مورد نظر، ستون ما باشد. در نهایت با echo get_the_modified_date() تاریخ آخرین بروزرسانی را نمایش می‌دهد.
    • خطوط ۲۶ تا ۲۹: با استفاده از add_filter('manage_edit-post_sortable_columns', 'modified_column_register_sortable_posts')، ستون جدید را قابل مرتب‌سازی می‌کنیم.
  2. خطوط ۳۲ تا ۴۹ – بخش مربوط به محصولات ووکامرس (Products):
    • این بخش دقیقاً مشابه بخش نوشته‌ها است، با این تفاوت که هوک‌های مربوط به نوع پست product استفاده می‌شوند. به عنوان مثال، manage_edit-product_columns برای افزودن ستون و manage_product_posts_custom_column برای نمایش محتوای ستون در محصولات استفاده می‌شود.
    • خط ۳۹: در تابع modified_column_display_products، با 'product' !== get_post_type($post_id) بررسی می‌شود که نوع پست “product” باشد و سپس تاریخ بروزرسانی نمایش داده می‌شود.
  3. خطوط ۵۲ تا ۶۸ – بخش استایل‌دهی: با استفاده از add_action('admin_head', 'fix_modified_column_width')، یک عملکرد به هوک admin_head اضافه می‌کنیم که در هدر صفحات مدیریت وردپرس اجرا می‌شود. در تابع fix_modified_column_width:
    • خط ۵۴: با استفاده از get_current_screen()، صفحه فعلی را دریافت می‌کنیم.
    • خط ۵۶: با استفاده از $screen && ('edit-post' === $screen->id || 'edit-product' === $screen->id)، بررسی می‌شود که آیا صفحه فعلی، صفحه لیست نوشته‌ها یا محصولات است.
    • خطوط ۵۸ تا ۶۴: با echo '<style>...، استایل CSS سفارشی اضافه می‌شود که عرض ستون را روی ۱۰٪ تنظیم کرده، از شکستن تاریخ در دو خط جلوگیری می‌کند و در نمای موبایل (عرض کمتر از ۷۸۲ پیکسل) ستون را مخفی می‌کند تا صفحه شلوغ نشود.

نکات مهم

در این بخش به نکات کلیدی برای استفاده صحیح از این کد اشاره می‌کنیم که باید به آن‌ها توجه ویژه‌ای داشته باشید:

  • استفاده از قالب فرزند: کد را در فایل functions.php قالب فرزند قرار دهید تا با بروزرسانی قالب اصلی، تغییرات شما از بین نرود.
  • تنظیم عرض ستون: عدد ۱۰٪ برای عرض ستون به عنوان نمونه انتخاب شده است. بسته به نیاز و محتوای ستون‌های دیگر، می‌توانید این عدد را تنظیم کنید. برای نمایش کامل تاریخ در برخی زبان‌ها، ممکن است به عرض بیشتری نیاز داشته باشید.
  • سفارشی‌سازی قالب تاریخ: با استفاده از پارامترهای تابع get_the_modified_date()، می‌توانید قالب نمایش تاریخ را تغییر دهید. به عنوان مثال، get_the_modified_date('Y/m/d') تاریخ را به صورت ۱۴۰۳/۰۴/۰۷ نمایش می‌دهد.
  • افزودن به سایر نوع‌های پست: اگر نیاز به افزودن این ستون به نوع‌های پست دیگری مانند صفحات یا سفارشات دارید، می‌توانید کد را با تغییر شناسه نوع پست به‌راحتی گسترش دهید. به عنوان مثال، manage_edit-page_columns برای صفحات.
  • تست پس از اعمال کد: پس از افزودن کد، وارد بخش نوشته‌ها یا محصولات در پنل مدیریت شوید و از نمایش ستون جدید و قابلیت مرتب‌سازی آن اطمینان حاصل کنید.
  • سازگاری با افزونه‌های مدیریت: این کد با اکثر افزونه‌های مدیریت وردپرس سازگاری دارد، اما در صورت بروز تداخل، افزونه‌های دیگر را به‌طور موقت غیرفعال کنید تا مشکل شناسایی شود.

جمع‌بندی

در این مقاله از سری مقالات آموزشی وردپرس، به بررسی روش افزودن ستون تاریخ آخرین بروزرسانی به لیست نوشته‌ها و محصولات در مدیریت وردپرس پرداختیم. با استفاده از کد ساده و استانداردی که ارائه شد، یک ستون جدید با عنوان “به‌روز رسانی” به لیست‌های مدیریت اضافه می‌شود که تاریخ آخرین تغییر هر مطلب یا محصول را نمایش می‌دهد و قابلیت مرتب‌سازی نیز دارد. این کار به مدیریت بهتر محتوا، پیگیری تغییرات و افزایش کارایی تیم مدیریت کمک می‌کند. با تنظیم استایل‌های CSS، ظاهر ستون را نیز می‌توانید به‌طور دلخواه شخصی‌سازی کنید.

امیدواریم این آموزش برای شما مفید بوده باشد. اگر سوالی درباره افزودن ستون تاریخ آخرین بروزرسانی، نحوه استفاده از کد یا هر بخش دیگری از این آموزش دارید، لطفاً در بخش نظرات مطرح کنید. همچنین اگر تجربه‌ای در سفارشی‌سازی مدیریت وردپرس دارید، خوشحال می‌شویم آن را با ما و سایر کاربران به اشتراک بگذارید.

نظر یا سوال شما درباره این کد

اگر نظر یا سوالی درباره این کد دارید بنویسید، ما در سریعترین زمان بررسی می‌کنیم و جواب شما رو میدیم.

ایمیل شما منتشر نخواهد شد.
اولین نفری باشید که نظر می دهد!

مقالات آموزش و نکات وردپرس