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
は空で、 からデフォルトの「3」を返すことさえありません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
しかし、最初の変数設定がグローバルであるのではなく、コンテンツを分類法に含めなければならない理由はまだわかりません。