Jak mogę użyć własnej (niestandardowej) wartości sesji w Wordpress?
Na przykład:$_SESSION['myname']="4lvin"
Mam już wstawioną session_start()
na wszystkich stronach potrzebuję, jak następuje.
<?php
session_start();
$_SESSION['myname'] = "4lvin";
?>
Ale nie działa globalnie.
Po prostu działam na własnej stronie.
NIE można wywoływać globalnie z innych stron (przy użyciu tej samej logiki).
Odpowiedzi:
EDYCJA: „PONIŻSZA WTYCZKA NIE JEST DOSTĘPNA, NALEŻY UŻYWAĆ TEGO, ŻE WTYCZKA ZAINSTALOWAĆ: Wtyczka sesji WordPress ”
Istnieje dobra wtyczka WordPress zaadaptowana z klasy CodeIgniter Session: WP Sessions Plugin .
Po aktywowaniu wtyczki możesz zacząć używać
$session
obiektu z dowolnego miejsca w motywie ($session
obiekt tak długi, jak globalny). Na przykład, aby użyć obiektu sesji $ doheader.php
pliku, wystarczy dodać ten kod:Oto kilka przydatnych funkcji dla twórców motywów i wtyczek.
Możesz dodać dane sesji w ten sposób:
Aby pobrać dane sesji:
Aby uzyskać wszystkie dane sesji:
Aby usunąć jeden element z sesji:
Aby usunąć więcej elementów z sesji:
Możesz także użyć Flashdata, czyli danych sesji, które będą dostępne tylko dla następnego żądania serwera, a następnie zostaną automatycznie usunięte. Mogą one być bardzo przydatne, gdy używasz ich do komunikatów informacyjnych lub statusu (np. „Produkt został usunięty”).
Aby zniszczyć sesję:
Wtyczka obsługuje także skróty . Możesz wydrukować dowolne dane sesji na swoich postach lub stronach:
Aby przejść do drugiego klucza:
Mam nadzieję, że to komuś pomoże.
źródło
WordPress nie używa sesji, dlatego zmienne sesji nie działają.
W rzeczywistości, jeśli określone zmienne zostaną zdefiniowane, WordPress faktycznie zniszczy się,
$_SESSION
aby pozostać bezstanowym .Ale jeśli naprawdę chcesz korzystać z sesji, spróbuj dodać
session_start()
na początkuwp-config.php
pliku. Spowoduje to (miejmy nadzieję) rozpoczęcie sesji przy każdym uruchomieniu WP, więc będziesz mógł ustawić i odczytać swoje$_SESSION
zmienne gdzie indziej w systemie.źródło
wp-cofnig.php
nie dotyczy aktualizacji.wp-config.php
nie zostanie zaktualizowany, w przeciwnym razie możesz utracić połączenie z DB i inne parametry, które ustawiłeś ręcznie.Wordpress obsługuje to .
Musisz dodać następujące wiersze u góry
functions.php
źródło