我在主题中添加了自定义“save_post”操作(代码如下)。但是,当我在帖子中放置图像或视频代码时,它会被剥离。我能留下来的唯一方法是注释掉add_action行。为了保持所有帖子信息的完整性,我需要做些什么?
add_action('save_post', 'custom_add_save');
function custom_add_save($postID){
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return $postID;
}
else
{
// called after a post or page is saved
if($parent_id = wp_is_post_revision($postID))
{
$postID = $parent_id;
}
if ($_POST['my_customHeader'])
{
update_custom_meta($postID, $_POST['my_customHeader'], 'my_customHeader');
}
else
{
update_custom_meta($postID, '', 'my_customHeader');
}
if ($_POST['my_customTitle'])
{
update_custom_meta($postID, $_POST['my_customTitle'], 'my_customTitle');
}
else
{
update_custom_meta($postID, '', 'my_customTitle');
}
}
}
function update_custom_meta($postID, $newvalue, $field_name) {
// To create new meta
if(!get_post_meta($postID, $field_name)){
add_post_meta($postID, $field_name, $newvalue);
}else{
// or to update existing meta
update_post_meta($postID, $field_name, $newvalue);
}
}
答案 0 :(得分:0)
我对与保存帖子相关的Wordpress钩子并不是很精通,但基于你的PHP,我发现你的custom_add_save()
函数在处理时没有返回post id手动保存(即单击Wordpress UI上的“保存草稿/发布”按钮时)。
当然,在自动保存期间(根据您输入custom_add_save
时的第一个代码块),它肯定会返回post id。
也许你想调查一下。 :)
答案 1 :(得分:0)
您还需要添加一个nonce值以防止并发
在表单中添加隐藏的输入:
<input type="hidden" name="customCategory_noncename" id="customCategory_noncename" value="<?= wp_create_nonce('customCategory'); ?>" />
并将其添加到您的保存代码
// verify this with nonce because save_post can be triggered at other times
if (!wp_verify_nonce($_POST['_noncename'], 'my_customHeader')) return $post_id;
默认情况下我认为wordpress会在编辑器中删除html格式,以支持自己的'智能'html标记