更新:wordpressの特定のデータリストを取得するたびにループを実行する必要がありますか?
私はページの一番上でループを実行できますが、ループを終了すると(endwhile;)、私はデータの配列をとにかく配置できません。私のデータは、ループを閉じるとすぐにどこにでも置くことはできません。
<?php /* Template Name: memberplatform */ ?>
<?php $current = $_SERVER["REQUEST_URI"]; ?>
<?php get_header(); ?>
<?php $temp_query = $wp_query;
query_posts("cat=2&showposts=20");
while (have_posts()) : the_post();
$membername = get_post_meta($post->ID, 'name', true);
$memberemail = get_post_meta($post->ID, 'email', true);
$members = [];
if (! empty($membername)) {
$members[] = '<option value="' . $memberemail . '">' . get_post_meta($post->ID, 'name', true) .'</option>';
echo implode($members);
}
endwhile;
?>
、その後、私はそのような私の配列をエコーしようとしてるの形で:
それでは、私がしようとするとしましょう
<select class="drops" name="smallsan">
<?php echo implode($members); ?>
</select>
私は、ループ内で私の配列を取得することができます最初の場所では、しかし、私は自分の結果をドロップダウンに入力することはできません。
元の問題:私はすでに、たとえば、ワードプレスのカスタムフィールドを与えてくれた人のリスト機能を取得する必要が
、自分のメールや自分の会社名は、オプションタグ内でそれらを表示しますフォーム内の選択ドロップダウン。
これまでのところは良いが、私はこのように2つの異なるループを実行する必要がありました(別の人から人への)2つの異なるフィールドを表示する必要があるため:ように
<form role="form" class="contactForm contact-form form-horizontal">
<div class="form-group">
<div class="controls">
<label class="col-sm-2 control-label"> Your Name (required)</label>
<div class="col-sm-10">
<select class="drops" name="smallsan">
<?php $temp_query = $wp_query; ?>
<?php query_posts("cat=2&showposts=20"); ?>
<?php while (have_posts()) : the_post(); ?>
<?php
$membername = get_post_meta($post->ID, 'name', true);
$memberemail = get_post_meta($post->ID, 'email', true);
if (! empty($membername)) {
echo '<option value="' . $memberemail . '">' . get_post_meta($post->ID, 'name', true) .'</option>';
}
?>
<?php
endwhile;
?>
</select>
<div class="help-block with-errors"></div>
</div>
</div>
<div class="controls">
<label class="col-sm-2 control-label">Referring to</label>
<div class="col-sm-10">
<select class="drops" name="smallsan">
<?php $temp_query = $wp_query; ?>
<?php query_posts("cat=2&showposts=20"); ?>
<?php while (have_posts()) : the_post(); ?>
<?php
$membername = get_post_meta($post->ID, 'name', true);
$memberemail = get_post_meta($post->ID, 'email', true);
if (! empty($membername)) {
echo '<option value="' . $memberemail . '">' . get_post_meta($post->ID, 'name', true) .'</option>';
}
?>
?>
<?php
endwhile;
?>
</select>
</div>
</div>
とを。
ループを最上部でのみ実行して両方のセクションにフィードしてみましたが、その方法では値を取得できませんでした(電子メールのすべてのメンバーではない):
<form role="form" class="contactForm contact-form form-horizontal">
<?php $temp_query = $wp_query; ?>
<?php query_posts("cat=2&showposts=20"); ?>
<?php while (have_posts()) : the_post(); ?>
<select class="drops" name="smallsan">
<?php
$membername = get_post_meta($post->ID, 'name', true);
$memberemail = get_post_meta($post->ID, 'email', true);
if (! empty($membername)) {
echo '<option value="' . $memberemail . '">' . get_post_meta($post->ID, 'name', true) .'</option>';
}
?>
<?php
endwhile;
?>
</select>
<div class="help-block with-errors"></div>
</div>
</div>
<div class="controls">
<label class="col-sm-2 control-label">Referring to</label>
<div class="col-sm-10">
<select class="drops" name="smallsan">
<?php
$membername = get_post_meta($post->ID, 'name', true);
$memberemail = get_post_meta($post->ID, 'email', true);
if (! empty($membername)) {
echo '<option value="' . $memberemail . '">' . get_post_meta($post->ID, 'name', true) .'</option>';
}
?>
?>
<?php
endwhile;
?>
</select>
</div>
</div>
それは正しいですか?ループを重複(DRY)しないようにする他の方法はありますか?
私はあなたのコードを使用しようとしましたが、それはうまくいきませんでした、とすぐに私はそれが1つの結果だけを印刷しますループを閉じるようなので、私は終了してみましたそれはコードの最後にありますが、まだ動作しません – Matto
var_dump($ members)しようとします。 –
コードをどこに置くべきですか? – Matto