搜索自定义帖子类型表

时间:2018-01-25 02:29:19

标签: php wordpress

我想使用默认搜索功能:

enter image description here

问题是我使用这行代码

制作了这张表
function waiting_list_column_content_callback($column_name, $post_ID) {
    $guestID        = get_post_meta( $post_ID, 'guest', true );
    $user_info      = get_userdata( $guestID );
    $floorplanID    = get_post_meta( $post_ID, 'floorplan', true );
    $notes          = get_post_meta( $post_ID, 'notes', true );
    $waiting_list   = wpr_get_waiting_list( $floorplanID );
    $list_location  = wpr_get_list_location( $post_ID, wpr_get_waiting_list( $floorplanID ) );

    if ( $column_name == 'fname' ) {
        echo '<a href="'.admin_url('edit.php?post_type=wpr_waiting_list&page=user-waiting-list&user_id='.$guestID).'">'.$user_info->first_name.'</a>';
    }elseif ( $column_name == 'lname' ) {
        echo '<a href="'.admin_url('edit.php?post_type=wpr_waiting_list&page=user-waiting-list&user_id='.$guestID).'">'.$user_info->last_name.'</a>';
    }elseif( $column_name == 'floorplan' ){
        echo get_the_title($floorplanID);
    }
    elseif( $column_name == 'logs_print' ){
         echo '<a href="'.admin_url('edit.php?post_type=wpr_waiting_list&page=user-waiting-list&user_id='.$guestID).'&log_print=yes">Print</a>';
    }elseif( $column_name == 'list_location' ){
        echo $list_location;
    }
}

我已尝试thisthis。它可以工作,但我只能通过&#34; id&#34; 搜索用户。因为&#34; id&#34; 是唯一可用的custom_field 。

这是我用来获取id的结果的代码。 &#34;旅客&#34;是&#34; id&#34;用户。我用它来显示用户的姓氏和名字。

    function extend_admin_search( $query ) {

     //Extend search for document post type
     $post_type = 'wpr_waiting_list';
     // Custom fields to search for
     $custom_fields = array(
            "guest",
        );
        if( ! is_admin() )
            return;

        if ( $query->query['post_type'] != $post_type )
       return;

    $search_term = $query->query_vars['s'];

    // Set to empty, otherwise it won't find anything
    $query->query_vars['s'] = '';

    if ( $search_term != '' ) {
        $meta_query = array( 'relation' => 'OR' );

        foreach( $custom_fields as $custom_field ) {
            array_push( $meta_query, array(
                'key' => $custom_field,
                'value' => $search_term,
                'compare' => 'LIKE'
            ));
        }

        $query->set( 'meta_query', $meta_query );
    };
}

add_action( 'pre_get_posts', 'extend_admin_search' );

我想要做的是通过&#34;名字&#34;来搜索这个自定义帖子类型。或者&#34;姓氏&#34;

我已经尝试了一些sql代码,但我得到了一些&#34;标题&#34;错误我不明白。

0 个答案:

没有答案