EDIT: "O plug-in abaixo não está mais disponível, portanto, use esse plug-in em vez de: Plugin de sessão do WordPress "
Existe um bom plug-in WordPress adaptado da classe CodeIgniter Session: WP Sessions Plugin .
Quando você ativa o plug-in, pode começar a usar o $session
objeto de qualquer lugar do seu tema ( $session
objeto desde que global). Por exemplo, para usar o objeto $ session no header.php
arquivo, basta adicionar este código:
global $session;
Se você é um desenvolvedor de plug-ins e deseja adaptar esse plug-in ao seu, também pode encontrar a versão autônoma no pacote. A documentação do plug-in fornece mais informações aos desenvolvedores sobre como se adaptar ao seu projeto.
Aqui estão algumas funções úteis para desenvolvedores de temas e plugins.
Você pode adicionar dados da sessão como este:
// One value
$session->set_userdata( 'username', 'john' );
// Passing array
$array = array(
'username' => 'john',
'email' => 'john@gmail.com'
);
$session->set_userdata( $array );
Para recuperar dados da sessão:
$session->userdata( 'username' );
Para obter todos os dados da sessão:
$session->all_userdata(); // returns array
Para remover um item da sessão:
$session->unset_userdata( 'username' );
Para remover mais itens da sessão:
$array = array(
'username' => '',
'email' => ''
);
$session->unset_userdata( $array );
Você também pode usar o Flashdata, que é um dado de sessão que estará disponível apenas para a próxima solicitação do servidor, e é automaticamente limpo. Eles podem ser muito úteis quando você os utiliza para mensagens informativas ou de status (por exemplo, “O produto foi excluído”).
// Add Flashdata
$session->set_flashdata( 'item', 'value' );
// Retrieve Flashdata
$session->flashdata( 'item' );
// Preserving flashdata
// (if you need to preserve flashdata through an additional request,
// you can use this function):
$session->keep_flashdata( 'item' );
Para destruir a sessão:
$session->sess_destroy();
O plugin também suporta códigos de acesso . Você pode imprimir qualquer dado de sessão em suas postagens ou páginas:
[session key="username"]
Para alcançar a segunda tecla:
[session key="user_data" sec_key="display_name"]
Espero que isso ajude alguém.