TODO: To change the header's content go to Dr.Explain menu Options : Project Settings : HTML (CHM) Export : Setup HTML Template and Layout
×
Menu
Index

Sử dụng Wordpress API

 
Hiển thị trường tùy biến.
Thêm tên cột vào bảng liệt kê posts/custom posts sử dụng filter 'manage_<post-type>_posts_columns'.
Ví dụ, áp dụng cho post type='event'.
add_filter('manage_event_posts_columns', 'bs_event_table_head');
function bs_event_table_head( $defaults ) {
    $defaults['event_date']  = 'Event Date';
    $defaults['ticket_status']    = 'Ticket Status';
    $defaults['venue']   = 'Venue';
    $defaults['author'] = 'Added By';
    return $defaults;
}
 
Tiếp đến, bạn cần thiết lập giá trị cột cho custom field với kiểu dữ liệu 'event'.
add_action( 'manage_event_posts_custom_column', 'bs_event_table_content', 10, 2 );
 
function bs_event_table_content( $column_name, $post_id ) {
    if ($column_name == 'event_date') {
    $event_date = get_post_meta( $post_id, '_bs_meta_event_date', true );
      echo  date( _x( 'F d, Y', 'Event date format', 'textdomain' ), strtotime( $event_date ) );
    }
    if ($column_name == 'ticket_status') {
    $status = get_post_meta( $post_id, '_bs_meta_event_ticket_status', true );
    echo $status;
    }
 
    if ($column_name == 'venue') {
    echo get_post_meta( $post_id, '_bs_meta_event_venue', true );
    }
 
}
 
Hình minh họa:
 
 
Thiết lập trường có thể xắp xếp.
Đầu tiên, bạn chỉ định cột/trường nào muốn thiết lập tính năng xắp xếp.
add_filter( 'manage_edit-event_sortable_columns', 'bs_event_table_sorting' );
function bs_event_table_sorting( $columns ) {
  $columns['event_date'] = 'event_date';
  $columns['ticket_status'] = 'ticket_status';
  $columns['venue'] = 'venue';
  return $columns;
}
Note: đặt giá trị nhận dạng cho trường xắp xếp, và xác định quy tắc xắp xếp trong hàm sửa tham số query bởi hook 'request'.
 
Sau đó, tạo filter cho mỗi cột để sửa kết quả query khi người dùng nhấn vào tên trường đó để thực hiện xắp xếp. Sử dụng hook 'request'.
add_filter( 'request', 'bs_event_date_column_orderby' );
function bs_event_date_column_orderby( $vars ) {
    if ( isset( $vars['orderby'] ) && 'event_date' == $vars['orderby'] ) {
        $vars = array_merge( $vars, array(
            'meta_key' => '_bs_meta_event_date',
            'orderby' => 'meta_value'
        ) );
    }
 
    return $vars;
}
 
add_filter( 'request', 'bs_ticket_status_column_orderby' );
function bs_ticket_status_column_orderby( $vars ) {
    if ( isset( $vars['orderby'] ) && 'ticket_status' == $vars['orderby'] ) {
        $vars = array_merge( $vars, array(
            'meta_key' => '_bs_meta_event_ticket_status',
            'orderby' => 'meta_value'
        ) );
    }
 
    return $vars;
}
 
add_filter( 'request', 'bs_venue_column_orderby' );
function bs_venue_column_orderby( $vars ) {
    if ( isset( $vars['orderby'] ) && 'venue' == $vars['orderby'] ) {
        $vars = array_merge( $vars, array(
            'meta_key' => '_bs_meta_event_venue',
            'orderby' => 'meta_value'
        ) );
    }
 
    return $vars;
}
 
 
 
Made with help of Dr.Explain

Unregistered version