如何防止Wordpress在帖子中编码html

时间:2011-02-14 09:12:54

标签: wordpress

作为标题,如何防止wp不在帖子中编码html?

目前我只需要阻止'&'更改为'&' 结果需要看起来像选择了html选项卡模式的编辑器。

$content = $wpdb->get_row("SELECT post_content FROM $wpdb->posts WHERE ID=xxx");
$content = str_replace('amp;','',$content->post_content);//remove amp;

$wpdb->query("UPDATE $wpdb->posts SET post_content = $content WHERE ID = xxx;");

但该代码仍然编码html。

更新: 以及如何与wp_insert_post()函数

协作实现内容过滤器(防止对某些文本进行编码)

更新[求助]:stackexchange

$content = get_post_field('post_content', XXX, 'raw');
$content = str_replace('amp;', '', $content);
$wpdb->update( $wpdb->posts, array( 'post_content' => $content ), array( 'ID' => XXX ) );

1 个答案:

答案 0 :(得分:3)

<?php $content = htmlentities( html_entity_decode($content) ); ?>

此代码将打印HTML标记,然后解码HTML实体(例如&amp;&)。

哦,并且wp_insert_post(),请执行:

// Create post object
$my_post = array(
  'post_content' => $content,
  'post_id' => POST_ID # update the post with the same ID as POST_ID
);

您可以将转义功能用作短代码:

function escape_html_func( $attrs, $content = "" ) {
  return htmlentities( html_entity_decode($content) );
}
add_shortcode( 'escape', 'escape_html_func' );

与博文中的[escape]<span>Hello!</span>[/escape]类似。这是内容过滤器的意思吗?