0

私のphpを許してください、私はそれにとても慣れていません。

カテゴリに基づいて異なるマークアップを出力するために、Wordpress でカテゴリ ループを作成しました (そのため、カテゴリ 1 の要素は一意のクラスなどを取得します)。私はそれを持っているので、ユーザーが選択できるラジオボタンをエコーし​​ています。ラジオボタンがチェックしないことを除いて、すべて正常に動作します。チェックを外すことはできますが、チェックすることはできません。静的 html バージョンは正常に動作します。

静的 (作業) バージョン:

<input id="type-1" name="s1" type="radio" class="type-1">
<label for="type-1" class="label-1">&nbsp;2010 </label>

<input id="type-3" name="s1" type="radio" class="type-3">
<label for="type-3" class="label-3">&nbsp;2011 <span>.</span> </label>

<input id="type-4" name="s1" type="radio" class="type-4">
<label for="type-4" class="label-4">&nbsp;2012 <span>.</span> </label>

<input id="type-5" name="s1" type="radio" class="type-5">
<label for="type-5" class="label-5">&nbsp;2013 <span>.</span> </label>

動的 (動作しない) バージョン:

    <?php
    $cat_args=array(
      'orderby' => 'name',
      'order' => 'ASC'
       );
    $categories=get_categories($cat_args);
      foreach($categories as $category) { 
        $args=array(
          'category__in' => array($category->term_id),
          'caller_get_posts'=>1
        );
        $posts=get_posts($args);
          if ($posts) {
            echo "<input id=\"type-{$category->term_id}\" name=\"s1\" type=\"radio\" class=\"type-{$category->term_id}\"><label for=\"type-{$category->term_id}\" class=\"label-{$category->term_id}\">&nbsp;{$category->name}<span>.</span> </label>";
            foreach($posts as $post) {
              setup_postdata($post); ?>
              <?php
            } // foreach($posts
          } // if ($posts
        } // foreach($categories
    ?>

更新:それを理解しました。私はばかで、上記のコードとは何の関係もありませんでした。それはばかげたCSSの問題でした。

4

1 に答える 1

0

出力に中括弧がありません。次のように記述する必要があります。

echo "<input id=\"type-{$category->term_id}\" ......";

詳細については、次のリンクを確認してください。

http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing

または、文字列連結を使用できます。

echo "<input id=\"type-" . $category->term_id . "\" ......";

sprintf()または、私が個人的に気に入っている を使用することもできます( http://php.net/manual/en/function.sprintf.php )

于 2013-09-07T02:59:54.850 に答える