HTML code in Custom field

时间:2012-07-07 作者:Anders Norén

我使用自定义字段在每篇文章的滑块中显示图像,但当我在自定义字段中输入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 (粘贴箱)。

1 个回复
最合适的回答,由SO网友:Adam 整理而成

更新的答案在WordPress上下文中使用的正确函数及其用于此目的的预期API是;

esc_textarea

因此,您的代码将反映这样的内容;

<textarea><?php echo esc_textarea($images);?></textarea>
虽然htmlspecialcharshtmlentities 有效使用,即使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)

结束

相关推荐

有没有人知道一个插件可以把一篇帖子变成一份html时事通讯?

我知道你可以拿到密码之类的东西。但我正试图找到一种方法,可以轻松地为客户实现这一点。我在google上搜索到的都是注册表格,而不是发帖子的内容。总结一下我的目标:我希望客户端能够创建帖子,使用内置的文本编辑器进行格式化等,可能会附加图片等。这样他们就可以在线获得完整的新闻稿存档。然后我想让他们有办法把它发送出去。要么导出html代码(通过模板),要么将其直接链接到mailchimp等。有人做过类似的事情吗?或者你有没有什么想法,我应该检查一下插件?如果它不存在,我并不反对尝试为此编写插件(尽管我还不确定如