J'ai une page sur mon site où, dans la colonne de gauche, se trouve un ensemble de cases à cocher représentant les taxonomies et dans la colonne de droite, une liste des publications qui entrent dans les taxonomies sélectionnées. L'utilisateur peut cocher et décocher ces cases et soumettre un formulaire qui affiche ensuite les résultats dans la colonne de droite. Cela fonctionne très bien, voici le code simplifié que j'utilise:
<?php session_start();
if (isset($_POST)) {
$_SESSION['filters'] = $_POST;
}
?>
<div id="sidebar">
<form id="filters" method="POST">
<input type="checkbox" name="filter1" value="term1" />
<input type="checkbox" name="filter1" value="term2" />
<input type="checkbox" name="filter1" value="term3" />
<input type="checkbox" name="filter2" value="term1" />
<input type="checkbox" name="filter2" value="term2" />
<input type="checkbox" name="filter2" value="term3" />
</form>
</div>
<div id="results">
<?php
//The query is here, which changes dynamically based on the boxes checked above
I'm using $_SESSION['filters'] to call $_POST variables inside the query
?>
</div>
Le problème est que, lorsque Wordpress fait sa navigation, il se dirige vers une URL telle que mysite.com/thispage/page/2/ qui ne conserve pas les valeurs de formulaire comme j'en ai besoin. Il les réinitialise comme si le formulaire n'avait pas été soumis du tout. Comment obtenir les valeurs sélectionnées pour suivre l'utilisateur lorsqu'il navigue dans les pages de résultats.
C’est la première fois que je tente d’utiliser des sessions, je risque donc de ne pas être sur la bonne voie. Toute aide est appréciée.
Ajoutez les prochaines lignes de code au fichier functions.php
dans le thème actif pour démarrer la session.
function example_login() {
if ( ! session_id()) {
session_start();
}
}
add_action( 'init', 'example_login' );
puis utilisez $_SESSION
pour stocker la valeur de $post