我正在处理一个插件,我已经定义了一个钩子,它应该在管理面板中创建一个自定义的帖子字段。代码相同:
//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']);
}
}
此代码在管理员帖子面板中生成自定义帖子字段,如下面的屏幕截图所示:
但是,当我在该文本字段中输入一个值并单击Update
时,当我尝试在刷新页面时检查字段时,输入值永远不会保存在文本字段中。
我的代码似乎有什么问题?
编辑1:
我更新了我的代码并添加了一个名为save_post
的新操作并定义了相应的功能。然而,问题似乎与我定义输入字段本身的方式有关,因为当我尝试检查文本字段的元素时,这就是我得到的:
<input type="text" id="jericho_name" name="jericho_name" value>
答案 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。
如果您已经注册了此处理程序并且仍然遇到问题,请同时使用其他代码部分更新您的问题。