Search posts by ID in admin

I’m looking for a way to search through posts by ID, preferably with support for custom post types. I was hoping there’d be a plugin enabling this functionality, but I’ve failed to find anything. Any ideas would be greatly appreciated, thank you.

Related posts

Leave a Reply

1 comment

  1. Not sure i understand why you’d want to query by ID, but that said it’s possible in a hacky kind of way(i like this method because it’s simple).

    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;
    }
    

    All you then do is search using the regular search box using a #(hash) prefix infront of the numeric ID.

    #123
    

    ..would return the post with an ID of 123.

    I’m sure there’s more complicated routes that could be taken to do this, but i don’t see any issues with this approach, unless you have lots of posts with titles that start with a hash(but you could always swap the hash for another character).

    Hope that helps. 🙂