✏️ 编辑:checkbox-list.php
路径:
/home/forge/kingkrunch.com/wp/wp-content/plugins/templatemela-metabox/inc/fields/checkbox-list.php
大小:2.48 KB · 修改:2020-09-11 16:13:48 · 权限:0775 · 可写
← 返回目录
👁 查看
⬇ 下载
<?php // Prevent loading this file directly defined( 'ABSPATH' ) || exit; if ( ! class_exists( 'RWMB_Checkbox_List_Field' ) ) { class RWMB_Checkbox_List_Field extends RWMB_Field { /** * Get field HTML * * @param mixed $meta * @param array $field * * @return string */ static function html( $meta, $field ) { $meta = (array) $meta; $html = array(); $tpl = '<label><input type="checkbox" class="rwmb-checkbox-list" name="%s" value="%s"%s> %s</label>'; foreach ( $field['options'] as $value => $label ) { $html[] = sprintf( $tpl, $field['field_name'], $value, checked( in_array( $value, $meta ), 1, false ), $label ); } return implode( '<br>', $html ); } /** * Get meta value * If field is cloneable, value is saved as a single entry in DB * Otherwise value is saved as multiple entries (for backward compatibility) * * @see "save" method for better understanding * * TODO: A good way to ALWAYS save values in single entry in DB, while maintaining backward compatibility * * @param $post_id * @param $saved * @param $field * * @return array */ static function meta( $post_id, $saved, $field ) { $meta = get_post_meta( $post_id, $field['id'], $field['clone'] ); $meta = ( !$saved && '' === $meta || array() === $meta ) ? $field['std'] : $meta; $meta = array_map( 'esc_attr', (array) $meta ); return $meta; } /** * Save meta value * If field is cloneable, value is saved as a single entry in DB * Otherwise value is saved as multiple entries (for backward compatibility) * * TODO: A good way to ALWAYS save values in single entry in DB, while maintaining backward compatibility * * @param $new * @param $old * @param $post_id * @param $field */ static function save( $new, $old, $post_id, $field ) { if ( !$field['clone'] ) { parent::save( $new, $old, $post_id, $field ); return; } if ( empty( $new ) ) delete_post_meta( $post_id, $field['id'] ); else update_post_meta( $post_id, $field['id'], $new ); } /** * Normalize parameters for field * * @param array $field * * @return array */ static function normalize_field( $field ) { $field['multiple'] = true; $field['field_name'] = $field['id']; if ( !$field['clone'] ) $field['field_name'] .= '[]'; return $field; } } }
💾 保存
取消
保存为 UTF-8,换行统一为 LF