我正在创建一个自定义的元盒,它将被短代码填充。问题是,保存后,它会不断剥离/删除短代码的最后一部分,如下所示:
假设为:
[myshortcode id=“3”]
结果(错误):
[myshortcode id=
我检查了数据库,它保存了它应该保存的方式,当我尝试前端时,它工作正常。我本来打算留下它(至少现在是这样),但如果我再次保存/更新页面,那么它将保存损坏的结果。
这是我的代码:
function custom_meta_box_markup($object)
{
global $post;
wp_nonce_field(basename(__FILE__), "meta-box-nonce");
//retrieve the metadata values if they exist
$value = get_post_meta($post->ID, "meta-box-text", true);
?>
<div>
<label for="meta-box-text">Text</label>
<input name="meta-box-text" type="text" value="<?php wp_kses_post($value); ?>">
<br>
</div>
<?php
}
function add_custom_meta_box()
{
add_meta_box("demo-meta-box", "Custom Meta Box", "custom_meta_box_markup", "product", "side", "high", null);
}
add_action("add_meta_boxes", "add_custom_meta_box");
function save_custom_meta_box($post_id, $post, $update)
{
if (!isset($_POST["meta-box-nonce"]) || !wp_verify_nonce($_POST["meta-box-nonce"], basename(__FILE__)))
return $post_id;
if(!current_user_can("edit_post", $post_id))
return $post_id;
if(defined("DOING_AUTOSAVE") && DOING_AUTOSAVE)
return $post_id;
$slug = "product";
if($slug != $post->post_type)
return $post_id;
$meta_box_text_value = "";
if(isset($_POST["meta-box-text"]))
{
$meta_box_text_value = $_POST["meta-box-text"];
}
update_post_meta($post_id, "meta-box-text", $meta_box_text_value);
}
add_action("save_post", "save_custom_meta_box", 10, 3);
谁能告诉我出了什么问题吗?
提前感谢!