Por que você precisa de um número inteiro improvável na paginação?

15

A paginate_links Referência de função do Codex tem algum código de amostra que está sendo republicado em toda a rede.

Tem uma seção que usa uma variável chamada $big = 999999999; // need an unlikely integer :

echo paginate_links( array(
    'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
    'format' => '?paged=%#%',
    'current' => max( 1, get_query_var('paged') ),
    'total' => $wp_query->max_num_pages
) );

E é usado em str_replace na função echo paginate_links .

Isso é alguma forma de encapsulamento?

    
por Jason Green 10.05.2013 / 18:04

1 resposta

16

Observe o get_pagenum_link( $big ) : isso criará uma URL ( não um link) com base no número fornecido no primeiro parâmetro.

Essa função é usada para obter o padrão básico para o URL, e o inteiro alto é usado aqui, porque:

  1. Você deve fornecer um inteiro como argumento.
  2. O URL resultante é filtrado com apply_filters('get_pagenum_link', $result) e pode ser alterado por plug-ins. Esse risco é um pouco maior para números que correspondem a páginas existentes, por exemplo, quando um plug-in implementa títulos separados para subpáginas.

Portanto, esta é apenas uma… convenção suja, um sinal para outros plugins: não mude por favor! Eu acho que PHP_INT_MAX teria sido melhor, mas ainda assim feio. E eu me pergunto quantos desenvolvedores de plugins sabem disso.

O número é então substituído pelo marcador de posição necessário em paginate_links() .

O que você vê aqui é uma API incompleta . Tente aprender algo com esse exemplo. Não divulgue APIs incompletas ou seus documentos parecerão embaraçosos. :)

    
por fuxia 10.05.2013 / 18:31

Tags