Как предотвратить Wordpress для кодирования HTML в посте - PullRequest
1 голос
/ 14 февраля 2011

Как и заголовок, как запретить 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 Ответ

3 голосов
/ 15 февраля 2011
<?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
);

Вы можете использовать функцию escape в качестве шорткода:

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

как [escape]<span>Hello!</span>[/escape] в сообщениях в блоге. Это то, что вы имели в виду под фильтром контента?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...