我似乎无法理解为什么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
返回默认值“3”。因此,我必须回顾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
内容包含在分类中,而不是将其初始变量设置包含在全局中。
答案 0 :(得分:0)
除非这些php文件包含在同一页面上,否则taxonomy.php上不存在$ postsperpage变量。如果是这种情况,您应该只检索该页面上的cookie值...
$postsperpage = $_COOKIE['post_per_page'];