Hoàng Web

Thiết Kế Website WordPress

  • Kho giao diện
  • Dịch Vụ
    • Tăng tốc độ WordPress
    • Tối ưu website WordPress
    • Thiết kế website WordPress
    • Viết plugin WordPress
    • Sửa lỗi nâng cấp website
  • Bảng giá
  • Quy trình làm việc
  • Giới thiệu
  • Liên Lạc
Trang chủ » Wordpress » Thêm form lọc dữ liệu trong WP admin với Custom Fields

Thêm form lọc dữ liệu trong WP admin với Custom Fields

Thứ Năm, 09/10/2014 by Hoàng Quách

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

WordPress có một vài tính năng thực sự hữu ích, mặc dù thỉnh thoảng bạn cần thêm một vài dòng code vào functions.php nhưng nó đã làm wordpress thay đổi về cách tương tác cũng như giao diện. Đây là cách làm không mới mình cho rằng là một cuộc cách mạng trong thiết kế lập trình nói chung và web nói riêng, bằng cách sử dụng Hook API giúp bạn không tốn thời gian khi phát triển ứng dụng web dựa vào CMS/Framework.

Trong bài hôm nay mình sẽ hướng dẫn bạn thêm menu lựa chọn vào form lọc dữ liệu post/page trong trang quản lý wp admin. Đoạn code dưới đây có tạo thêm menu liệt kê danh sách custom fields, trường này sẽ hoạt động cùng với form lọc dữ kiệu.
Chèn đoạn code sau vào functions.php

<?php
add_filter( 'parse_query', 'ba_admin_posts_filter' );
add_action( 'restrict_manage_posts', 'ba_admin_posts_filter_restrict_manage_posts' );

function ba_admin_posts_filter( $query )
{
    global $pagenow;
    if ( is_admin() && $pagenow=='edit.php' && isset($_GET['ADMIN_FILTER_FIELD_NAME']) && $_GET['ADMIN_FILTER_FIELD_NAME'] != '') {
        $query->query_vars['meta_key'] = $_GET['ADMIN_FILTER_FIELD_NAME'];
    if (isset($_GET['ADMIN_FILTER_FIELD_VALUE']) && $_GET['ADMIN_FILTER_FIELD_VALUE'] != '')
        $query->query_vars['meta_value'] = $_GET['ADMIN_FILTER_FIELD_VALUE'];
    }
}

function ba_admin_posts_filter_restrict_manage_posts()
{
    global $wpdb;
    $sql = 'SELECT DISTINCT meta_key FROM '.$wpdb->postmeta.' ORDER BY 1';
    $fields = $wpdb->get_results($sql, ARRAY_N);
?>
<select name="ADMIN_FILTER_FIELD_NAME">
<option value=""><?php _e('Filter By Custom Fields', 'baapf'); ?></option>
<?php
    $current = isset($_GET['ADMIN_FILTER_FIELD_NAME'])? $_GET['ADMIN_FILTER_FIELD_NAME']:'';
    $current_v = isset($_GET['ADMIN_FILTER_FIELD_VALUE'])? $_GET['ADMIN_FILTER_FIELD_VALUE']:'';
    foreach ($fields as $field) {
        if (substr($field[0],0,1) != "_"){
        printf
            (
                '<option value="%s"%s>%s</option>',
                $field[0],
                $field[0] == $current? ' selected="selected"':'',
                $field[0]
            );
        }
    }
?>
</select> <?php _e('Value:', 'baapf'); ?><input type="TEXT" name="ADMIN_FILTER_FIELD_VALUE" value="<?php echo $current_v; ?>" />
<?php
}

Bạn có thể thiết kế field riêng cho từng trang, ở ví dụ trên mình thiết lập cho page edit.php, xác định page hiện tại bởi biến global $pagenow. Các page gồm: edit.php, upload.php, ..
add-menu-filter-post-wp
Nếu bạn muốn lọc dữ liệu trên frontend, thì xem cách tùy biến search form tại đây.
Bạn đang lọc dữ liệu và cần kiểm tra dữ liệu hiển thị trên cột có đúng không, trường hợp nếu cột đó không được hỗ trợ mặc định trong wordpress bạn sẽ phải tạo thêm cột trong trang quản lý nội dung Posts.

Nếu bạn thấy bài viết này hữu ích, hãy chia sẻ với bạn bè bằng cách nhấn nút chia sẻ ở bên dưới. Theo dõi chúng tôi trên Twitter và Facebook

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

Bài viết liên quan:

  1. Đổi nhãn footer trong WordPress admin
  2. Tạo các Tabs nội dung trong wordpress admin
  3. Thêm hoặc xóa widgets trong WordPress dashboard
  4. Redirect sau khi đăng nhập wordpress
  5. Tạo menu dọc trong trang quản lý wordpress admin
  6. Tìm hiểu về wordpress dashboard
  7. Sử dụng filter sửa thuộc tính shortcode
  8. Plugin tự chuyển sang giao diện điện thoại cho wordpress
  9. Hướng dẫn Multisite trong wordpress
  10. WooCommerce – Tự động thêm sản phẩm vào giỏ hàng khi truy cập vào website

Chuyên mục: Wordpress Tìm kiếm: wordpress admin

Đăng ký nhận bài viết mới

Vui lòng điền chính xác email ở bên dưới để nhận thông báo bài viết mới.

Bạn đã đăng ký thành công!

Lỗi! hãy làm lại.

thông tin của bạn được 100% bảo mật...

Tôi giúp gì cho bạn?

Nhận bài viết mới

Vui lòng điền chính xác email ở bên dưới để nhận thông báo bài viết mới.

Cám ơn bạn đã đăng ký.

Lỗi, hãy làm lại

thông tin của bạn được 100% bảo mật...

HOÀNG WEB

Địa chỉ: Tây Sơn, Phường Quang Trung, Quận Đống Đa, Hà Nội

Hotline: 0987 342 124 (8h:00 – 21h:00)

Email: [email protected]

Website: www.hoangweb.com

KẾT NỐI VỚI TÔI

  • Facebook
  • Snapchat

SẢN PHẨM

  • Plugin Auto-Sync Google Shopping cho WooCommerce
  • Phần mềm chặn click ảo
  • WP2Speed.com – Tăng tốc WordPress

LIÊN KẾT

  • Hướng dẫn thanh toán
  • Chính sách hoàn tiền
  • Trung tâm hỗ trợ

Copyright © 2021 | All rights reserved | HOANG WEB
Mọi hình thức sao chép nội dung trên website này mà chưa được sự đồng ý đều là trái phép.