Desempenho com carregamento automático e a tabela de opções

12

Estou brincando com a autoloadcoluna da optionsmesa. Não encontrei muita informação sobre como os valores de carregamento automático são usados. Eu tentei um print_r($GLOBALS)e vi que as opções de carregamento automático estão armazenadas $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 carregamento automático, várias vezes em modelos diferentes (por exemplo header.php, uma vez, uma vez footer.php), qual método é recomendado?

  1. Tudo bem recuperá-lo da $GLOBALSmatriz (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')cada vez (o que não vejo sentido em fazer)
  4. Algo mais
RRikesh
fonte

Respostas:

23

Não encontrei muita informação sobre como os valores de carregamento automático são usados.

Não há um caso especial para as opções carregadas automaticamente, elas são usadas da mesma maneira que as opções regulares, mas vamos descobrir o que significa a autoloadcoluna da optionstabela. Esta coluna determina se precisamos buscar uma opção no estágio de inicialização de uma solicitação ou buscamos uma opção somente sob demanda.

Mas quando esse carregamento automático acontece e que função faz? Todas as opções de carregamento automático são carregadas e armazenadas em cache por wp_load_alloptionsfunção, que é chamada por is_blog_installedfunção no início de cada solicitação HTTP, manipulada pelo WP.

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

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

  1. É uma abordagem ruim recuperá-lo $GLOBALSdiretamente, use em get_optionvez disso
  2. Globalizar variáveis ​​personalizadas não é bem-vindo e é recomendável fazê-lo o menos possível
  3. Do meu ponto de vista, é a melhor opção para você
  4. Mesmo não pense em outra coisa :)

Por que usar a get_optionfunção cada vez que é 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ê o chamar.
  2. Ele o armazenará em cache para reutilização futura.
  3. Ele permite que outros plugins e temas conectem sua opção conectando o option_optionnamefiltro.
  4. Ele buscará uma opção se ainda não estiver carregado.
Eugene Manuilov
fonte
11
+1 resposta muito informativa. Nunca ouviu falar sobre o gancho opção antes :)
RRikesh
@rrikesh ur bem-vindo, espero que ele explique o suficiente
Eugene Manuilov