Back to Explore
Tại sao WordPress ẩn Post ID trong Admin và cách hiển thị chúng một cách chuyên nghiệp

Tại sao WordPress ẩn Post ID trong Admin và cách hiển thị chúng một cách chuyên nghiệp

Bạn có biết Post ID luôn tồn tại trong mỗi hàng của bảng quản trị WordPress nhưng lại bị ẩn đi? Khám phá cách hiển thị chúng để tối ưu hóa quy trình làm việc và những lưu ý bảo mật quan trọng khi làm việc với ID trong WordPress.

Website
Upvote this postSign in to upvote this article.

Bài viết được dịch và tổng hợp từ tin tức gốc. Bạn có thể đọc bài viết gốc bằng tiếng Anh tại đây.

Điểm tin nhanh:

  • Post ID luôn tồn tại trong cơ sở dữ liệu WordPress nhưng mặc định không được hiển thị trong giao diện quản trị.
  • Việc hiển thị ID giúp lập trình viên quản lý shortcode, WP_Query và WP-CLI hiệu quả hơn.
  • Cần thận trọng khi sử dụng ID cứng (hardcode) vì chúng có thể thay đổi sau khi di chuyển dữ liệu hoặc cài đặt lại trang web.

Trong thế giới phát triển web, đôi khi những thay đổi nhỏ nhất lại mang đến hiệu quả công việc lớn nhất. Hầu hết các lập trình viên WordPress đều đã từng trải qua cảm giác mệt mỏi khi phải di chuột qua từng liên kết để tìm kiếm Post ID, hoặc phải mở trình kiểm tra phần tử (Inspect Element) chỉ để lấy một con số định danh đơn giản. Thực tế, dữ liệu này luôn nằm ngay trước mắt bạn trong bảng danh sách bài viết, chỉ là WordPress không hiển thị nó ra mà thôi.

Ảnh bìa bài viết

Tại sao bạn cần hiển thị Post ID?

Việc sở hữu Post ID ngay trong bảng danh sách quản trị không chỉ là vấn đề thẩm mỹ, mà là một yêu cầu thực tế trong các dự án chuyên nghiệp. Bạn sẽ cần đến chúng khi:

  • Sử dụng các shortcode yêu cầu danh sách ID phân tách bằng dấu phẩy.
  • Thiết lập tham số post__in hoặc post__not_in trong WP_Query để tùy chỉnh vòng lặp dữ liệu.
  • Thực hiện các thao tác quản trị thông qua WP-CLI với lệnh wp post get 123.
  • Phân biệt các trang có cùng tiêu đề (ví dụ: nhiều trang cùng tên Home).

Nếu bạn đang gặp khó khăn trong việc gỡ lỗi hoặc quản lý cấu trúc dữ liệu, hãy tham khảo thêm bài viết về khi một báo cáo lỗi đơn giản che giấu sự thật: bài học về gỡ lỗi đa tầng để có cái nhìn sâu sắc hơn về quy trình xử lý lỗi.

Cách hiển thị Post ID bằng Code

Bạn có thể thêm cột ID bằng cách sử dụng các hook có sẵn trong WordPress. Đoạn mã dưới đây sẽ chèn cột ID ngay sau cột checkbox trong danh sách bài viết và trang.

// functions.php: ID column on posts and pages
add_filter('manage_posts_columns', 'wpa_id_column');
add_filter('manage_pages_columns', 'wpa_id_column');
function wpa_id_column($columns) {
    return array_slice($columns, 0, 1, true)
         + ['wpa_id' => 'ID']
         + array_slice($columns, 1, null, true);
}

add_action('manage_posts_custom_column', 'wpa_id_value', 10, 2);
add_action('manage_pages_custom_column', 'wpa_id_value', 10, 2);
function wpa_id_value(<code class="math-inline">column,</code>post_id) {
    if ($column === 'wpa_id') {
        echo (int) $post_id;
    }
}

Mẹo hay: Nếu bạn muốn áp dụng cho các Custom Post Type (CPT), hãy thay đổi hook thành manage_{$post_type}_posts_columns. Đừng quên rằng việc thêm code vào functions.php sẽ khiến nó mất tác dụng khi bạn đổi theme, vì vậy hãy cân nhắc chuyển nó vào một plugin riêng biệt.

Cover image for The WordPress post ID is already in every row of your admin list, core just never prints it

Giải pháp thay thế: Sử dụng Plugin

Nếu bạn không muốn can thiệp vào code, các plugin như WP Adminify cung cấp tính năng hiển thị cột ID chỉ với một cú click chuột. Điều này giúp tiết kiệm thời gian và đảm bảo tính ổn định khi bạn thay đổi giao diện website. Việc tối ưu hóa quy trình quản trị cũng quan trọng như cách bạn tối ưu hóa quy trình phát triển phần mềm: tại sao việc ép buộc chuẩn mực code là chìa khóa cho AI coding.

Đánh giá & Lời khuyên Thực tiễn

Tiêu chí Giải pháp Code Giải pháp Plugin
Hiệu năng Rất cao (không tốn tài nguyên) Trung bình (tùy plugin)
Độ linh hoạt Cao (tùy biến sâu) Thấp (phụ thuộc tính năng sẵn có)
Bảo trì Cần kiến thức PHP Dễ dàng cho người dùng cuối

Lưu ý: Post ID là định danh duy nhất trong một cơ sở dữ liệu cụ thể, không phải là định danh vĩnh viễn cho nội dung. Khi bạn export/import dữ liệu hoặc di chuyển website, các ID này có thể thay đổi. Do đó, hãy ưu tiên sử dụng Slug thay vì ID trong các template nếu có thể. Nếu bắt buộc phải hardcode, hãy đưa chúng vào các hằng số cấu hình (config constants) để dễ dàng cập nhật sau này.

Để đảm bảo website của bạn luôn đạt hiệu suất cao nhất, hãy kết hợp với các chiến lược on-page SEO 2024: tối ưu hóa website để thống trị thứ hạng tìm kiếm để đạt được kết quả tốt nhất.

Câu hỏi thường gặp (FAQ)

Tại sao tôi không nên hardcode Post ID trong template?

Vì ID có thể thay đổi khi bạn di chuyển dữ liệu giữa các môi trường (staging sang production). Nếu ID thay đổi, các đoạn code hardcode sẽ trỏ sai nội dung mà không báo lỗi, gây khó khăn cho việc gỡ lỗi.

Có cách nào làm cột ID có thể sắp xếp được không?

Có, bạn cần sử dụng thêm hook manage_edit-post_sortable_columns kết hợp với việc can thiệp vào pre_get_posts để xử lý truy vấn sắp xếp theo meta hoặc ID.

Việc thêm cột ID có làm chậm trang quản trị không?

Không đáng kể. Việc truy xuất ID từ đối tượng $post đã có sẵn trong bộ nhớ của WordPress, vì vậy thao tác này cực kỳ nhẹ nhàng.

Kết luận

Việc hiển thị Post ID là một thủ thuật nhỏ nhưng mang lại sự khác biệt lớn trong quy trình làm việc hàng ngày của lập trình viên WordPress. Dù bạn chọn cách viết code tùy chỉnh hay sử dụng plugin, hãy luôn ghi nhớ nguyên tắc bảo mật và tính di động của dữ liệu. Nếu bạn là một lập trình viên muốn nâng tầm kỹ năng, hãy tìm hiểu thêm về lập trình viên WordPress trong kỷ nguyên AI: làm thế nào để trở nên thực sự khác biệt? để luôn dẫn đầu xu hướng. Đừng quên để lại bình luận nếu bạn có cách tiếp cận tối ưu hơn và theo dõi hi_dev để cập nhật những kiến thức công nghệ mới nhất.

Discussion (0)

You need to log in to post comments. Log In

No comments yet. Start the discussion!