Metabox继续剥离部分短码

时间:2015-10-19 作者:Mario88

我正在创建一个自定义的元盒,它将被短代码填充。问题是,保存后,它会不断剥离/删除短代码的最后一部分,如下所示:

假设为:

[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);
谁能告诉我出了什么问题吗?

提前感谢!

1 个回复
SO网友:Mario88

我真的应该睡一会儿了:P短代码是[主滑块],我手动编写了[元滑块]。。我一定是想到了那个元盒子。。

只需将相应的行更改为:

value="<?php echo esc_html($value);  ?>"> 
这是可行的。感谢@Howdy\\u McGee为我指明了正确的方向!另请@s\\u ha\\u dum获取更多知识。