Performance com autoload e a tabela de opções

9

Estou brincando com a coluna autoload da tabela options . Não encontrei muita informação sobre como os valores carregados automaticamente são usados. Eu tentei um print_r($GLOBALS) e vi que as opções autoloaded são armazenadas em $GLOBALS['wp_object_cache']->cache['options']['alloptions'] .

Existe outra maneira de acessar essas variáveis?

Suponha que eu precise acessar uma opção my_option , que foi configurada para o carregamento automático, várias vezes em diferentes modelos (por exemplo, uma vez em header.php , uma vez em footer.php ), qual método é recomendado?

  1. Está tudo bem recuperá-lo da matriz $GLOBALS (já que o valor já está aqui)
  2. Devo usar get_option('my_option') uma vez e globalizar a variável novamente
  3. Use get_option('my_option') de cada vez (o que não vejo sentido em fazer)
  4. Outra coisa
por RRikesh 30.01.2013 / 13:58

1 resposta

18
  

Não encontrei muitas informações sobre como os valores carregados automaticamente   usado.

Não há nenhum caso especial para opções carregadas automaticamente, elas são usadas da mesma forma que as opções regulares, mas vamos descobrir o que significa autoload da coluna options table. Essa coluna determina que precisamos buscar uma opção no estágio de inicialização de uma solicitação ou devemos buscar uma opção apenas sob demanda.

Mas quando esse carregamento automático acontece e qual é a função dele? Todas as opções autoload são carregadas e armazenadas em cache pela função wp_load_alloptions , que é chamada pela função is_blog_installed no início de cada solicitação HTTP, tratada pelo WP.

Vamos resumir: a opção autoloaded é a mesma opção, mas carregada no início do processamento de solicitações HTTP por WP.

  

Suponha que eu precise acessar uma opção ... qual método é recomendado?

  1. É uma má abordagem recuperá-lo de $GLOBALS diretamente, use get_option
  2. Globalizar as variáveis personalizadas não é bem-vindo e recomendado para fazê-lo o menos possível
  3. Do meu ponto de vista, é a melhor opção para você
  4. Nem pense em outra coisa:)

Por que usar a função get_option cada vez é a melhor opção? Porque:

  1. O primeiro e o mais importante porque : você pode ter certeza de que ele retornará um valor atualizado sempre que você ligar.
  2. Ele será armazenado em cache para reutilização futura.
  3. Permite que outro plug-in e tema conectem sua opção, conectando option_optionname filter.
  4. Ele buscará uma opção se ainda não estiver carregado.
por Eugene Manuilov 30.01.2013 / 15:16