我似乎无法理解为什么 a) 我的变量没有在页面内返回,b) 为什么似乎为每个单独的页面设置了一个 cookie。
目标:
在产品列表中,我可以选择按 5、10 或全部(本示例中的小数字)过滤结果。当我对$_COOKIE
重置为默认值进行分页时,并且为该页面设置了一次设置。我可以在第 1 页和第 2 页之间交替显示不同的结果列表。
文件“cookies.php”(之前<!doctype html>
):
<?php $post_per_page = $_POST['post_per_page'];
if (isset($post_per_page)) {
// Store it in the cookie
setcookie('post_per_page', $post_per_page, time()+60*60*24, "/");
// And save in a variable
$postsperpage = $post_per_page;
}
// Then check existing cookies
else if (isset($_COOKIE['post_per_page'])) {
$postsperpage = $_COOKIE['post_per_page'];
}
// Finally use a default value if none was set
else {
// Default to 3 for example:
$postsperpage = 3;
}
?>
在我的 taxonomy.php 中:
$args = array(
'post_type' => 'product',
'posts_per_page' => $postsperpage,
'paged' => $paged
);
在这个$postsperpage
是空的,甚至没有从cookies.php
. 所以我不得不回忆一下cookies.php
注释掉该setcookie
行的内容。
标记:
<form method="post">
<button type="submit" name="post_per_page" value="5">5</button>
<button type="submit" name="post_per_page" value="10">10</button>
<button type="submit" name="post_per_page" value="-1">ALL</button>
</form>
编辑
不知何故,cookie 设置已自行修复。但是我仍然很困惑为什么我必须将cookies.php
内容包含到分类中而不是其初始变量设置是全局的。