我使用自定义字段在每篇文章的滑块中显示图像,但当我在自定义字段中输入HTML代码后更新文章时,代码就会消失。我假设存在某种过滤器,可以在保存帖子时从自定义字段中删除HTML代码。有没有办法不用插件就可以绕过这个问题?
谢谢
编辑:使用以下代码保存信息:
function save_details(){
global $post;
update_post_meta($post->ID, "ptime", $_POST["ptime"]);
update_post_meta($post->ID, "services", $_POST["services"]);
update_post_meta($post->ID, "tools", $_POST["tools"]);
update_post_meta($post->ID, "url", $_POST["url"]);
update_post_meta($post->ID, "images", $_POST["images"]);
}
您可以找到完整的函数。php代码
here (粘贴箱)。
最合适的回答,由SO网友:Adam 整理而成
更新的答案在WordPress上下文中使用的正确函数及其用于此目的的预期API是;
esc_textarea
因此,您的代码将反映这样的内容;
<textarea><?php echo esc_textarea($images);?></textarea>
虽然
htmlspecialchars
和
htmlentities
有效使用,即使
esc_textarea
包裹
htmlspecialchars
无论如何,使用官方API调用更合适。
我在下面留下了我的原始答案,以供参考,但根据需要交换相关函数。
原始答案
在剪贴纸中替换
images_box
具有的函数
(start of line 65);
function images_box($echo = FALSE){
global $post;
$custom = get_post_custom($post->ID);
$images = $custom["images"][0];
?>
<textarea name="images" cols="100" rows="10">
<?php echo htmlspecialchars($images); //Hi, I\'m your input! ?>
</textarea>
<?php
}
您没有在
<textarea> ECHO INPUT HERE </textarea>
因此,您似乎根本没有输入任何内容。
还可以使用htmlspecialchars
而且$city = $custom["images"][0];
应该是$images = $custom["images"][0];
(line 68)