РЕДАКТИРОВАТЬ: "ПЛАГИН НИЖЕ НЕДОСТУПНЫ ДЛЯ ВАС, ПОЖАЛУЙСТА, ИСПОЛЬЗУЙТЕ ЭТО ПЛАГИН ВМЕСТО: Плагин для WordPress Session "
Есть хороший плагин WordPress, адаптированный из класса CodeIgniter Session: плагин WP Sessions .
Когда вы активируете плагин, вы можете начать использовать $session
объект из любой точки вашей темы ( $session
объект до тех пор, пока он глобальный). Например, чтобы использовать объект $ session в header.php
файл, просто добавьте этот код:
global $session;
Если вы являетесь разработчиком плагинов и хотите адаптировать этот плагин к своему, вы также можете найти автономную версию в пакете. Документация по плагину дает больше информации для разработчиков плагинов о том, как адаптироваться к вашему проекту.
Вот несколько полезных функций для разработчиков тем и плагинов.
Вы можете добавить данные сеанса следующим образом:
// One value
$session->set_userdata( 'username', 'john' );
// Passing array
$array = array(
'username' => 'john',
'email' => 'john@gmail.com'
);
$session->set_userdata( $array );
Чтобы получить данные сеанса:
$session->userdata( 'username' );
Чтобы получить все данные сеанса:
$session->all_userdata(); // returns array
Чтобы удалить один элемент из сеанса:
$session->unset_userdata( 'username' );
Чтобы удалить больше элементов из сеанса:
$array = array(
'username' => '',
'email' => ''
);
$session->unset_userdata( $array );
Вы также можете использовать Flashdata - данные сеанса, которые будут доступны только для следующего запроса к серверу, после чего они автоматически очищаются. Они могут быть очень полезны, когда вы используете их для информационных сообщений или сообщений о состоянии (например, «Продукт был удален»).
// 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' );
Чтобы уничтожить сессию:
$session->sess_destroy();
Плагин также поддерживает шорткоды . Вы можете распечатать любые данные сеанса на своих постах или страницах:
[session key="username"]
Чтобы добраться до второго ключа:
[session key="user_data" sec_key="display_name"]
Я надеюсь, что это помогает кому-то.