我正在构建一个在页面上显示表单的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>";
}
提交表单时,我想更新名为“wedding_singer_gender”的wp_postmeta表中的一行 - 此行特定于要填写的预订表单。以下是我更新特定行的方法,我不知道如何使用'data-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*);
答案 0 :(得分:0)
处理这个问题的最佳方法是...... 1.在表单提交时,将$ singer_id存储到带有$ booking_id的wp_postmeta
<select name="about_performance_lead_singer" id="about_performance_lead_singer" value="">
<option disabled="" selected=""> -- Choose a singer -- </option>
<option value="1">Toni</option>
<option value="2">Jack</option>
<option value="3">James</option>
</select>
其中1,2,3等将是$ artist_id 使用此代码生成
$singers = get_posts(
array(
'post_type' => 'singers',
'numberposts' => -1
)
);
// Array of WP_User objects.
foreach ( $singers as $singer ) {
echo "<option value='".esc_html( $singer->ID )."' >" . esc_html( $singer->singer_name ) . "</option>";
}
当您需要检索艺术家详细信息时。
1.从post meta使用获取艺术家/歌手ID
get_post_meta ($booking_id, 'singer_id')
2.使用歌手ID获取歌手的详细信息
get_post_meta ($singer_id, 'singer_gender')