0

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.phpcookies.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しかし、最初の変数設定がグローバルであるのではなく、コンテンツを分類法に含めなければならない理由はまだわかりません。

4

1 に答える 1

0

これらの php ファイルが同じページに含まれていない限り、$postsperpage 変数は taxonomy.php に存在しません。その場合は、そのページの Cookie 値を次のように取得する必要があります...

$postsperpage = $_COOKIE['post_per_page'];
于 2013-03-11T01:24:41.603 に答える