0
更新:每當我想在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>
我可以在循環中獲得我的數組,所以首先,但我無法用我的結果填充我的下拉菜單。
原來的問題:
我需要檢索的誰我已經在WordPress給出的自定義字段,例如人的名單功能,他們的電子郵件或他們的公司名稱,以在選項標籤中顯示它們表單中的選擇下拉列表。
到目前爲止好,但因爲我需要顯示兩個不同的領域(從一個人到另一個人),我不得不運行在這樣兩種不同的循環:
<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)循環,並使進程停滯並且代碼更清潔?
我試圖用你的代碼,但它不工作,當我關閉循環,將打印結果只有一個,所以我試圖結束它在代碼的最後,但仍然不起作用 – Matto
嘗試var_dump($ members)。 –
我該在哪裏或如何放置代碼? – Matto