Không chắc chắn tôi hiểu lý do tại sao bạn muốn truy vấn bằng ID, nhưng điều đó nói rằng nó có thể theo một cách thức khó khăn (tôi thích phương pháp này vì nó đơn giản).
add_action( 'parse_request', 'idsearch' );
function idsearch( $wp ) {
global $pagenow;
// If it's not the post listing return
if( 'edit.php' != $pagenow )
return;
// If it's not a search return
if( !isset( $wp->query_vars['s'] ) )
return;
// If it's a search but there's no prefix, return
if( '#' != substr( $wp->query_vars['s'], 0, 1 ) )
return;
// Validate the numeric value
$id = absint( substr( $wp->query_vars['s'], 1 ) );
if( !$id )
return; // Return if no ID, absint returns 0 for invalid values
// If we reach here, all criteria is fulfilled, unset search and select by ID instead
unset( $wp->query_vars['s'] );
$wp->query_vars['p'] = $id;
}
Tất cả những gì bạn làm là tìm kiếm bằng hộp tìm kiếm thông thường bằng cách sử dụng #
tiền tố (băm) trước ID số.
#123
..có thể trả lại bài đăng với ID là 123.
Tôi chắc chắn có nhiều tuyến đường phức tạp hơn có thể được thực hiện để làm điều này, nhưng tôi không thấy bất kỳ vấn đề nào với cách tiếp cận này, trừ khi bạn có nhiều bài đăng với tiêu đề bắt đầu bằng hàm băm (nhưng bạn luôn có thể trao đổi hàm băm cho nhân vật khác).
Mong rằng sẽ giúp. :)