Posso forçar o get_option a voltar ao banco de dados em vez do cache?

2

Existe alguma maneira de garantir que quando eu chamo get_option eu definitivamente vou pegar o valor do banco de dados e não do cache?

    
por djb 20.05.2013 / 11:50

2 respostas

4

Você pode excluir um cache existente para sua opção antes de chamar get_option() :

$GLOBALS['wp_object_cache']->delete( 'your_option_name', 'options' );
$value = get_option( 'your_option_name' );
    
por fuxia 20.05.2013 / 11:56
4

Usando a técnica wp_cache_delete () mostrada por toscho, você também precisa ter certeza de que sua opção não está no autoload. Se sua opção for carregada automaticamente, ela fará parte do alloptions cache, por isso você não poderá apagá-la individualmente.

Portanto, certifique-se de usar o seguinte formato ao definir / atualizar sua opção, se desejar poder excluí-la do cache:

update_option( 'my_key', 'my val', false ); // False being the autoload parameter

add_option( 'my_key', 'my val', null, false ); // null is a deprecated argument.
documentação update_option ()

    
por mathieuhays 15.05.2015 / 14:18