Pesquisa postagens por ID em admin

10

Estou procurando uma maneira de pesquisar por postagem por ID, de preferência com suporte para tipos de postagem personalizados. Eu esperava que houvesse um plug-in que permitisse essa funcionalidade, mas não consegui encontrar nada. Qualquer idéia seria muito apreciada, obrigado.

    
por pereyra 14.02.2011 / 00:15

1 resposta

12

Não tenho certeza se entendi por que você deseja consultar por ID, mas isso é possível de maneira hacky (gosto desse método porque é simples).

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

Tudo o que você faz é pesquisar usando a caixa de pesquisa regular usando um prefixo # (hash) na frente do ID numérico.

#123

.. retornaria a postagem com um ID de 123.

Tenho certeza que existem rotas mais complicadas que poderiam ser tomadas para fazer isso, mas não vejo nenhum problema com essa abordagem, a menos que você tenha muitas postagens com títulos que começam com um hash (mas você sempre pode trocar o hash para outro personagem).

Espero que ajude. :)

    
por t31os 16.02.2011 / 12:07

Tags