php - 添加不同语言的文本时复选框不断消失
问题描述
我有以下代码:
<div class="wrap">
<div class="add-item"><input type="button" id="addCheckboxItem" class="button button-primary" value="<?php _e( 'Add checkbox', 'sha-wreg' ); ?>"></div>
<table id="checkboxes-table">
<thead>
<tr valign="top">
<th class="detail-name" colspan="2"><?php _e( 'Checkbox label', 'sha-wreg' ); ?></th>
</tr>
</thead>
<tbody>
<?php foreach ( $checkboxes as $field_id => $field_value ): ?>
<tr id="detail-<?php echo $field_id; ?>">
<td><input type="text" name="<?php echo $sha_wreg_prefix; ?>checkbox_data[<?php echo $field_id; ?>]" value="<?php echo $field_value; ?>" /></td>
<td><button type="button" class="remove-item button" onclick="removeRow('<?php echo $field_id; ?>')">-</button></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<script type="text/javascript">
var prefix = '<?php echo $sha_wreg_prefix; ?>';
</script>
其输出如下图所示:
我遇到的问题是我正在尝试将文本翻译成法语,当我保存复选框时,整行会像这样消失:
这个插件是由另一个不再可用的开发人员为我们的 Wordpress 网站定制开发的。有人可以帮我解决这个问题,让我知道为什么我添加另一种语言后文本就会消失吗?
这是后端的代码:
function sha_wreg_add_checkboxes_metabox( $item_data ) {
global $sha_wreg_module_slug, $sha_wreg_prefix, $sha_wreg_plugin_dir;
$checkboxes = unserialize( get_post_meta( $item_data->ID, $sha_wreg_prefix . 'checkbox_data', true ) );
require_once $sha_wreg_plugin_dir . 'admin/templates/checkboxes_metabox.php'; }
add_action( 'save_post', 'sha_wreg_save_update', 10, 2 );
function sha_wreg_save_update( $item_id, $item_data ) {
global $sha_wreg_module_slug, $sha_wreg_prefix, $sha_wreg_uploads_dir;
switch ( $item_data->post_type ) {
case $sha_wreg_module_slug:
// Update systems
if ( isset( $_POST[ $sha_wreg_prefix . 'system' ] ) && !empty( $_POST[ $sha_wreg_prefix . 'system' ] ) ) {
//Change status to allocating
$system_data = get_post_meta( $item_id, $sha_wreg_prefix . 'system', true );
$system_name = get_post( $_POST[ $sha_wreg_prefix . 'system' ] )->post_title;
$system_object = array(
'id' => (int)$_POST[ $sha_wreg_prefix . 'system' ],
'name' => $system_name
);
if ( empty( $system_data ) ) {
update_post_meta( $item_id, $sha_wreg_prefix . 'status', 'Allocated' );
}
update_post_meta( $item_id, $sha_wreg_prefix . 'system', $system_object );
}
//Remove empty rows
foreach ( $_POST[ $sha_wreg_prefix . 'detail_data' ] as $k => $v ) {
if ( empty( $v['name'] ) || ( empty( $v['name'] ) && empty( $v['value'] ) ) ) {
unset( $_POST[ $sha_wreg_prefix . 'detail_data' ][ $k ] );
}
}
// Update details
$detail_data = get_post_meta( $item_id, $sha_wreg_prefix . 'detail_data', true );
$detail_data = unserialize( $detail_data );
if ( $detail_data !== $_POST[ $sha_wreg_prefix . 'detail_data' ] ) {
update_post_meta( $item_id, $sha_wreg_prefix . 'detail_data', serialize( $_POST[ $sha_wreg_prefix . 'detail_data' ] ) );
}
break;
case $sha_wreg_module_slug . '_pdfs':
// Update PDF
if ( isset( $_FILES[ $sha_wreg_prefix . 'pdf_file' ] ) && $_FILES[ $sha_wreg_prefix . 'pdf_file' ][ 'error' ] == 0 ) {
$oldfile = get_post_meta( $item_id, $sha_wreg_prefix . 'pdf_file', true );
$uploadfile = sprintf('%s/%s', $sha_wreg_uploads_dir, $_FILES[ $sha_wreg_prefix . 'pdf_file' ]['name'] );
//Copy PDF
if ( move_uploaded_file( $_FILES[ $sha_wreg_prefix . 'pdf_file' ]['tmp_name'], $uploadfile ) ) {
update_post_meta( $item_id, $sha_wreg_prefix . 'pdf_file', basename( $uploadfile ) );
}
//Remove old PDF
if ( isset( $oldfile ) && !empty( $oldfile ) ) {
if ( file_exists( sprintf( '%s/%s', $sha_wreg_uploads_dir, basename( $oldfile ) ) ) ) {
unlink( sprintf( '%s/%s', $sha_wreg_uploads_dir, basename( $oldfile ) ) );
}
}
}
// Update checkboxes
$checkbox_data = get_post_meta( $item_id, $sha_wreg_prefix . 'checkbox_data', true );
$checkbox_data = unserialize( $detail_data );
if ( $checkbox_data !== $_POST[ $sha_wreg_prefix . 'checkbox_data' ] ) {
update_post_meta( $item_id, $sha_wreg_prefix . 'checkbox_data', serialize( $_POST[ $sha_wreg_prefix . 'checkbox_data' ] ) );
}
// Update extra data
$extra_data = get_post_meta( $item_id, $sha_wreg_prefix . 'extra_data', true );
$extra_data = unserialize( $extra_data );
if ( isset( $_POST[ $sha_wreg_prefix . 'extra_data' ] ) && ( $extra_data !== $_POST[ $sha_wreg_prefix . 'extra_data' ] ) ) {
update_post_meta( $item_id, $sha_wreg_prefix . 'extra_data', serialize( $_POST[ $sha_wreg_prefix . 'extra_data' ] ) );
}
break;
}
}
解决方案
推荐阅读
- javascript - Node.js - 尝试在回调函数中嵌入回调函数
- windows-installer - 多个补丁安装问题
- python-3.x - 无法启动 web2py
- python - 在不导入模块或属性的情况下获取模块的属性类型
- postgresql - 我应该如何从外部服务器连接到 Heroku Postgres db?
- spring-boot - 如何在springboot中将端点列表添加到@CrossOrigin注释
- qt - 如何在鼠标区域的地图上拖放组件并获取实时地图坐标
- amazon-web-services - 使用 lambda 函数将视频上传到 s3 存储桶,将视频详细信息上传到 dynamo db
- html - 当 Django views.py 没有将字典值传递给 html 时如何解决?
- python - 如何从 json 格式中删除 '\"'