php - 保存元框值不起作用 [WP-PHP]
问题描述
我正在尝试保存元框输入,但它似乎不起作用。我正在使用数组(因为我需要我的元框有 60 行),所以我认为问题出在它们之内。
这是我的管理员元框功能(它可以正确显示我想要显示的信息):
function mock_metabox() {
global $post;
// Nonce field
wp_nonce_field( basename( __FILE__ ), 'mock_fields' );
// init counter for meta array
$contadorglobal = 1;
$selecciones = array();
$equipos = array();
$equiposog = array();
while ( $contadorglobal <= 60 ){
$selecciones[$contadorglobal-1] = get_post_meta( $post->ID, '_seleccion_' . $contadorglobal, true );
$equipos[$contadorglobal-1] = get_post_meta( $post->ID, '_equipo_' . $contadorglobal, true );
$equiposog[$contadorglobal-1] = get_post_meta( $post->ID, '_equipoog_' . $contadorglobal, true );
$contadorglobal++;
}
// Output the fields
?>
<h3> Informacion del Mock </h3>
<table>
<tr>
<th> # </th>
<th> Jugador </th>
<th> Equipo </th>
<th> Equipo Original </th>
</tr>
<?
$contador = 1;
$teams = get_posts( array(
'post_type' => 'team',
'orderby' => 'title',
'order' => 'ASC',
'numberposts' => -1,
'post_status' => 'publish'
) );
while ( $contador <= 60 ){
?>
<tr>
<td><?php echo $contador ?></td>
<td><input type="text" name="<? 'jugador_' . $contador ?>" value="<?php echo $selecciones[$contador-1] ; ?>" />
<td><select name="<? 'equipo_' . $contador?>" ><?
foreach ( $teams as $team ) { ?>
<option value="<?php echo $team->ID; ?>" <?php checked( $equipos[$contador-1], $team->ID ); ?> > <?php echo $team->post_title; ?> </option> <? } ?> </select> </td>
<td><select name="<? 'equipoog_' . $contador ?>" ><?
foreach ( $teams as $team ) { ?>
<option value="<?php echo $team->ID; ?>" <?php checked( $equiposog[$contador-1], $team->ID ); ?> > <?php echo $team->post_title; ?> </option> <? } ?> </select> </td>
<? $contador++; ?>
</tr>
<?php } ?>
</table>
<?}
这是保存功能(我认为问题出在 while 上,但我尝试将其删除,但它也没有保存任何信息)。
function mock_save_meta_box_data( $post_id ){
// verify taxonomies meta box nonce
if ( !isset( $_POST['mock_fields'] ) || !wp_verify_nonce( $_POST['mock_fields'], basename( __FILE__ ) ) ){
return;
}
// return if autosave
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ){
return;
}
// Check the user's permissions.
if ( ! current_user_can( 'edit_post', $post_id ) ){
return;
}
// guarda tipo traspaso
for ($contadorid = 1; $contadorid <= 60; $contadorid++) {
if ( isset( $_REQUEST['jugador_' . $contadorid] ) ) {
update_post_meta( $post_id, '_seleccion_' . $contadorid, $_POST['jugador_' . $contadorid] );
}
if ( isset( $_REQUEST['equipo_' . $contadorid] ) ) {
update_post_meta( $post_id, '_equipo_' . $contadorid, $_POST['equipo_' . $contadorid] );
}
if ( isset( $_REQUEST['equipoog_' . $contadorid] ) ) {
update_post_meta( $post_id, '_equipoog_' . $contadorid, $_POST['equipoog_' . $contadorid] );
}
}
}
add_action( 'save_post_mock', 'mock_save_meta_box_data' );
有任何想法吗?提前致谢!
解决方案
推荐阅读
- r - R中的时间序列分析(找出趋势)
- c - 如何使用 C 和 linux 从用户那里获取键盘输入?
- c - 如何在C中执行第二个函数?
- linux - 在 Windows 中练习 Bash 命令行的最佳方法?(Bash\Linux\Noob)
- mysql - MySQL 复合索引问题 - 性能问题
- javascript - Javascript - 如何在 Highcharts 上显示数组的特定索引?
- java - Eclipse 下的 Java ClassLoader 与 Eclipse 之外的不同
- django - KeyError Post DjangoRestFramework
- python - Flask-Admin 删除“主页”按钮
- arm - 在 IAR NXP 编译器中获取某些 c 文件的头文件路径