问题描述
谁能向我解释为什么这段代码没有保存 wp 元框从这个数组中选择值 $results
下面的代码支持使用 foreach
public function ewa_custom_Box_html( $post ) {
$value = get_post_meta( $post->ID,'_groups_name_Meta_key',true );
global $wpdb;
$table_name = $wpdb->prefix . "my_groups";
$results = $wpdb->get_results( "SELECT * FROM $table_name" );
echo '<label for="groups_name_field" id="groups_name_field">Select from groups</label>';
echo '<select>';
foreach ($results as $key) {
echo '<option value="'.$key->groups.'">'.selected($key->groups,). $key->groups .' </option>';
}
echo '</select>';
}
选择一个值后,它不保存!我怎样才能让它工作?
解决方法
在做了一些recherche之后,我终于找到了问题所在。
创建一个新数组来存储数据,然后我使用 foreach
循环在 github
select html
完整类中的所有键
//Getting values( Selet key from array )
public function ewa_groups_names_html( $post ) {
$value = get_post_meta( $post->ID,'_ewa_groups_name_meta_key',false );
global $wpdb;
$table_name = $wpdb->prefix . "ewa_ads_groups";
$results = $wpdb->get_results( "SELECT * FROM $table_name" );
$groups = [];
foreach ($results as $key) {
$groups[] = $key->groups;
}
// if (empty($groups)) return;
?>
<label for="groups_name"><?php esc_html('Select from groups') ?></label>
<select name="ewa_groups_name_field" id="groups_name">
<option> <?php _e('-- Select groups --') ?></option>
<?php
foreach ($groups as $group) {
echo '<option value="'.$group.'" '.selected($value,$group,).'>'.$group.'</option>';
}
?>
</select>
<?php
}
保存元框值
public function ewa_save_postdata( $post_id ) {
if (isset($_POST['ewa_groups_name_field'])) {
$gp = sanitize_text_field($_POST['ewa_groups_name_field']);
update_post_meta(
$post_id,$gp
);
}
}