サポート » 使い方全般 » 変数の値によって、ループを条件分岐したい

  • いろいろ調べてみたのですが、どうやっても解決することが出来ず、質問させて頂きます。

    <?php query_posts($query_string . '&posts_per_page=10'); ?>
    <?php if(have_posts()) : while(have_posts()) : the_post(); ?>
    <?php if($aaa == 1): ?>
    処理
    <?php endif; ?>
    <?php endwhile; endif; ?>
    <?php wp_reset_query(); ?>

    と言うループ構文を書きました。

    やりたいことは、外部のxmlから取得した値が変数$aaaに代入してあり、例えばこの値が「1」の投稿だけをcategory.phpの一覧に表示させたいのですが、上記の構文ですと例えば、ソート順で$aaaの値が「1」である投稿が7記事「2」が3記事だったとすると、1ページの一覧に表示されるのは7記事しか表示されません。
    $aaaの値が「2」の投稿は無視して$aaaの値が「1」の投稿を10記事一覧に表示させたいのですが、どのようにすればいいのでしょうか?
    (商品カタログページなので、ページ分割した全ページ(最終ページは除く)に表示される投稿を10記事に統一したいため。)

    query_postsを
    <?php query_posts($query_string . '&$aaa=1&posts_per_page=10'); ?>
    みたいに書いて、表示内容を変更できればいいのですが、出来ませんでした。

    カスタムフィールドのキーを例えば「xml」とし、値を「$aaa」として
    <?php query_posts($query_string . '&meta_key=xml&meta_value=1&posts_per_page=10'); ?>
    とすれば出来るのかなと思いましたけどこちらも出来ませんでした。

    どなたかお分かりになられる方、ご教示くださいますよう、お願いいたします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • やりたいことは、外部のxmlから取得した値が変数$aaaに代入してあり、例えばこの値が「1」の投稿だけをcategory.phpの一覧に表示させたいのですが、

     
    外部のxmlから取得した値とのことですが、どの時点でどのように投稿に変数’$aaa’を関連付けているのでしょう?
    各投稿のカスタムフィールド’xml’に保存してあるのでしたら、質問の最後のコードで取得出来ると思いますが、カスタムフィールド’xml’の値は’1’でなければなりません。
    投稿と変数’$aaa’の関係が不明ですが、外部のxmlから取得した値を変数’$aaa’に代入するのは、どの時点でどのように行っているのですか?

    トピック投稿者 white-fang

    (@white-fang)

    popup様
    返信ありがとうございます。
    説明が不足しており、申し訳ありません。

    外部xmlの取得はループ時に取得しています。
    具体的にはこんな感じです。

    <?php query_posts($query_string . '&posts_per_page=10'); ?>
    <?php if(have_posts()) : while(have_posts()) : the_post(); ?>
    <?php
    //カスタムフィールドにあるidの値を$idに代入
    $id = post_custom('id');
    //xmlのURLを$xml_fileに代入
    $xml_file = "http://hogehoge.com/?{$id}";
    //xmlの読み込み
    $xml = simplexml_load_file("$xml_file");
    //xmlファイル内の取得したい値を$aaaに代入
    $aaa = ($xml->○○○->a);
    ?>
    <?php if($aaa == 1): ?>
    処理
    <?php endif; ?>
    <?php endwhile; endif; ?>
    <?php wp_reset_query(); ?>

    質問に書いた最後のコードですが、カスタムフィールドの値を変数にしたら、変数と認識して展開してくれないかなと安易に想像してやってみたのですが、変数としては扱えないようで$aaaという文字列というか値としてしか扱われなく、うまくいきませんでした。
    $aaaは変動する値なので、アクセスがあった時に取りに行って、その値によって表示するかしないかを決めたくて、この質問をさせていただきました。

    よろしくお願いいたします。

    投稿に保存されていないデータを条件にしたクエリを発行することは出来ません。
    今の仕組みでは目的のことは無理ですので、表示の可否を決めているデータ(外部xmlから取得したデータ)を事前に投稿のカスタムフィールドに保存しておくなど、仕組みの変更を検討する必要があると思います。

    トピック投稿者 white-fang

    (@white-fang)

    popup様
    返信ありがとうございます。

    現状では無理なのですね。
    了解いたしました。
    他の方法を考えてみます。

    出来ないということが分かっただけでも、僕にとっては進歩なので助かりました。

    僕の質問に答えてくれてありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「変数の値によって、ループを条件分岐したい」には新たに返信することはできません。