Wordpress:在管理员帖子面板中保存帖子元数据条目

时间:2015-08-14 13:21:43

标签: php wordpress

我正在处理一个插件,我已经定义了一个钩子,它应该在管理面板中创建一个自定义的帖子字段。代码相同:

    //ADDING CUSTOM FIELDS IN ADMIN PANEL
add_action('add_meta_boxes', 'jericho_meta');
add_action('save_post', 'jericho_saved');

function jericho_meta()
{
    add_meta_box('jericho_name', 'Favorite PPV', 'jericho_handler', 'post');
}

function jericho_handler()
{   
    $value = get_post_custom($post->ID);
    $namey = esc_attr($value['jericho_name'][0]);
    echo '<label for = "jericho_name">Favorite PPV</label><input type = "text" id = "jericho_name" name = "jericho_name" value = "'.$namey.'" />';

}

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

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

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

此代码在管理员帖子面板中生成自定义帖子字段,如下面的屏幕截图所示:

enter image description here

但是,当我在该文本字段中输入一个值并单击Update时,当我尝试在刷新页面时检查字段时,输入值永远不会保存在文本字段中。

我的代码似乎有什么问题?

编辑1:

我更新了我的代码并添加了一个名为save_post的新操作并定义了相应的功能。然而,问题似乎与我定义输入字段本身的方式有关,因为当我尝试检查文本字段的元素时,这就是我得到的:

<input type="text" id="jericho_name" name="jericho_name" value>

1 个答案:

答案 0 :(得分:3)

根据您提供的代码,我可以看到您没有注册用于保存后元数据的回调/触发器。

您需要自己处理(不会自动处理)。 目前,你所做的就是绑定了#jericho_handler()&#34;函数在后期编辑页面呈现时呈现数据。而且这应该没问题。

您需要添加其他功能,该功能将在&#39; save_post&#39;您将在何处处理将数据保存到数据库中。

    SELECT *
FROM (
     SELECT O.Article, P.PeriodText, SUM(O.Ammount) AS Ammount
        FROM Orders O
        INNER JOIN Weeks W on O.Week = W.Week
        INNER JOIN Periods P ON P.Week = O.Week
        GROUP BY O.Article, P.PeriodText
) AS Source
PIVOT
(
    SUM(Ammount)
    FOR [Article] IN (
      ['Weeks 24 and 25','Weeks 26 and 27']
    )
) AS PivotTable

请在这里查看详细教程。上面粘贴的代码来自此link

如果您已经注册了此处理程序并且仍然遇到问题,请同时使用其他代码部分更新您的问题。