【发布时间】:2015-12-10 03:32:55
【问题描述】:
我正在构建一个在页面上显示表单的 wordpress 插件。表单中是一个动态填充的歌手下拉列表(歌手是一种自定义帖子类型,管理员在其中输入歌手姓名和歌手性别 - 作为变量存储在 wp_postmeta "singer_name" 和 "singer_gender" 中)。
在表格中,我已经在选项中添加了歌手性别作为数据变量,例如:
<select name="about_performance_lead_singer" id="about_performance_lead_singer" value="">
<option disabled="" selected=""> -- Choose a singer -- </option>
<option data-gender="female" value="Toni">Toni</option>
<option data-gender="male" value="Jack">Jack</option>
<option data-gender="male" value="James">James</option>
</select>
此代码是使用以下 php 生成的:
$singers = get_posts(
array(
'post_type' => 'singers',
'numberposts' => -1
)
);
// Array of WP_User objects.
foreach ( $singers as $singer ) {
echo "<option data-gender='".esc_html( $singer->singer_gender )."' value='".esc_html( $singer->singer_name )."' >" . esc_html( $singer->singer_name ) . "</option>";
}
提交表单后,我想更新 wp_postmeta 表中名为“wedding_singer_gender”的行 - 此行特定于正在填写的预订表单。这是我更新特定行的方法,我不知道如何用“数据性别”变量填充它
// Get booking form ID from URL query string
$booking_form_id = get_query_var( 'booking-id' );
update_post_meta($booking_form_id, 'wedding_singer_gender', *WEDDING SINGER GENDER*);
【问题讨论】:
-
为什么不直接在提交表格的时候再找歌手,然后这样找到性别呢?此外,歌手没有特定的 ID,因此您可能有多个同名的歌手。
-
@RyanWillis 因为“singers”是一种自定义帖子类型,它们确实有一个唯一的 id - 您是否建议我将其添加为另一个数据变量,即 data-singer-id?或者我应该将值更改为 ID?
-
是的,选择框的值应该始终是唯一的。 Rakib 的回答是可靠的