无法使用自定义元数据在自定义插件中保存元数据?

时间:2015-07-08 17:00:39

标签: php wordpress

使用codeacademy.cc(https://www.youtube.com/watch?v=33bilBgZrb4)教程系列,我尝试创建以下插件。但是,它不保存元数据。我不知道这里发生了什么,我无法找出它为什么不能保存它。我将不同的“die”函数放入if子句中进行一种调试。似乎没有设置$_POST['the-key']。当我尝试将else子句用于add_meta_data时,它也不会改变任何内容。有没有人知道如何修复此代码?

我也试过不同的钩子:

  • pre_post_update
  • save_post
  • post_updated

(添加一行,因为stackoverflow有list +代码的问题)

<?php
/*
* Plugin Name: Zenva Video Widget
* Plugin URI: http://www.zenva.com
* Description: Learn how to create shortcodes and to retrieve data from the web.
* Version: 1.0
* Author: IQ Development
* Author URI: http://www.zenva.com
* License: GPL2
*/

add_action('add_meta_boxes', 'zvavw_add_metabox');
add_action('save_post', 'zvavw_save_metabox');


function zvavw_add_metabox() {
    add_meta_box('zvavw_youtube', 'YouTube Video Link', 'zvavw_youtube_handler', 'post');
}

function zvavw_youtube_handler() {
    $value = get_post_custom($post->ID);
    $youtube_link = esc_attr($value['zvavw_youtube'][0]);

    echo '<label for="zvavw_youtube">YouTube Video Link</label><input type="text" id="zvavw_youtube" value="' . $youtube_link . '" />';
}

function zvavw_save_metabox($post_id) {

    if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return;
    }

    if(!current_user_can('edit_post')) {
        return;
    }

    if(isset($_POST['zvavw_youtube'])) {
        update_post_meta($post_id, 'zvavw_youtube', esc_url($_POST['zvavw_youtube']));
    }
}

?>

1 个答案:

答案 0 :(得分:0)

我不记得我是否忘记了身份证或姓名,但我在输入框中忘记了其中一个,因此它没有任何价值。因此,如果有人碰到这个问题,请检查输入标签上的ID /名称。