保存/读取自定义字段值不起作用-不会过帐任何值

时间:2013-09-11 作者:Sven

我正在尝试为我的所有帖子添加一个自定义字段,当然还保存/读取该值。作为一个起点,我从Wordpress Codex中选取了这个例子,并将其简化为基本内容。我知道它有严重的安全缺陷,我只是想了解它。

我目前面临的问题是什么都救不了。在查看保存帖子时发布的内容后,我注意到输入的键&;中不存在值$_POST 数组。该属性存在于数据库中,但当然没有值。

我还注意到变量$post 传递给add_input 是空的,但我不知道为什么(我想这就是问题所在?)。

这是我函数中的代码。php:

function add_custom_field() {
    add_meta_box( \'my_field\', \'My Field\', \'add_input\', \'post\' );
}
add_action( \'add_meta_boxes\', \'add_custom_field\' );

function add_input( $post ) {
    $value = get_post_meta( $post->ID, \'my_key\', true );
    echo \'<input type="text" value="\' . $value . \'" id="my_id">\';
}

function save( $post_id ) {    
    $mydata = sanitize_text_field( $_POST[\'my_id\'] );
    update_post_meta( $post->ID, \'my_key\', $mydata );
}
add_action( \'save_post\', \'save\' );
您在上面的代码中看到任何错误吗?你对我给你的信息有什么评论吗?为什么没有向服务器发布任何内容?

1 个回复
最合适的回答,由SO网友:cybmeta 整理而成

您有两个问题:

1.-您没有通过正确的帖子ID。要解决此问题,请更改:

update_post_meta( $post->ID, \'my_key\', $mydata );
收件人:

update_post_meta( $post_id, \'my_key\', $mydata );
2您没有正确创建输入name 缺少属性:

更改:

echo \'<input type="text" value="\' . $value . \'" id="my_id">\';
收件人:

echo \'<input type="text" value="\' . $value . \'" id="my_id" name="my_id">\';

结束

相关推荐

使用GET_POSTS获取自定义字段数据,但使用一个数组

我在WordPress中运行了一个get\\u posts查询,需要提取一对自定义字段并将它们全部放入一个数组中。get\\u posts查询提供了一个post数组,但当我使用foreach访问自定义字段时,最终会为每个结果提供单独的数组。The Query$c_query = get_posts( array( \'post_type\' => \'page\',