Raw HTML - Version 1.6

Version Description

  • Added a way to preserve [raw] blocks in post excerpts.
  • Enabled the "Raw HTML" metabox for custom post types.
  • Tested up to WP 5.2 (only with the Classic Editor).
Download this release

Release Info

Developer whiteshadow
Plugin Icon wp plugin Raw HTML
Version 1.6
Comparing to
See all releases

Code changes from version 1.5.1 to 1.6

include/formatting-override.php CHANGED
@@ -87,9 +87,13 @@ add_action('save_post', 'rawhtml_save_postdata');
87
 
88
  /* Adds a custom section to the "advanced" Post and Page edit screens */
89
  function rawhtml_add_custom_box() {
90
- //WP 2.5+
91
- if( function_exists( 'add_meta_box' )) {
92
- foreach( array('post', 'page') as $type ) {
 
 
 
 
93
  add_meta_box( 'rawhtml_meta_box', 'Raw HTML', 'rawhtml_meta_box', $type, 'side' );
94
  }
95
  }
@@ -130,39 +134,35 @@ function rawhtml_meta_box(){
130
  }
131
 
132
  /* Saves post metadata */
133
- function rawhtml_save_postdata( $post_id ){
134
- // verify this came from the our screen and with proper authorization,
135
- // because save_post can be triggered at other times
136
-
137
- if ( !isset($_POST['rawhtml_nonce']) ){
138
- return $post_id;
139
- }
140
-
141
- if ( !wp_verify_nonce( $_POST['rawhtml_nonce'], plugin_basename(RAWHTML_PLUGIN_FILE) )) {
142
- return $post_id;
143
- }
144
 
145
- if ( 'page' == $_POST['post_type'] ) {
146
- if ( !current_user_can( 'edit_page', $post_id ))
147
- return $post_id;
148
- } else {
149
- if ( !current_user_can( 'edit_post', $post_id ))
150
- return $post_id;
151
- }
152
-
153
- // OK, we're authenticated: we need to find and save the data
154
- $fields = rawhtml_get_settings_fields();
155
- $new_settings = array();
156
- foreach ( $fields as $field ){
157
- if ( !empty($_POST['rawhtml_'.$field]) ){
158
- $new_settings[$field] = true;
159
- } else {
160
- $new_settings[$field] = false;
161
- };
162
- }
163
- rawhtml_save_post_settings($post_id, $new_settings);
 
 
 
 
164
 
165
- return true;
166
  }
167
 
168
  //Add our panel to the "Screen Options" box
@@ -330,7 +330,7 @@ function rawhtml_default_settings_panel(){
330
  $esc_field = esc_attr($field);
331
  $output .= sprintf(
332
  '<label for="rawhtml_default-%s" style="line-height: 20px;">
333
- <input type="checkbox" name="rawhtml_default-%s" id="rawhtml_default-%s"%s>
334
  %s
335
  </label><br>',
336
  $esc_field,
87
 
88
  /* Adds a custom section to the "advanced" Post and Page edit screens */
89
  function rawhtml_add_custom_box() {
90
+ //WP 3.0+
91
+ if( function_exists('add_meta_box') && function_exists('post_type_supports') ) {
92
+ $types = get_post_types(array('show_ui' => true, 'show_in_menu' => true), 'names');
93
+ foreach( $types as $type ) {
94
+ if ( !post_type_supports($type, 'editor') ) {
95
+ continue;
96
+ }
97
  add_meta_box( 'rawhtml_meta_box', 'Raw HTML', 'rawhtml_meta_box', $type, 'side' );
98
  }
99
  }
134
  }
135
 
136
  /* Saves post metadata */
137
+ function rawhtml_save_postdata($post_id) {
138
+ // Verify this came from the our screen and with proper authorization,
139
+ // because save_post can be triggered at other times
 
 
 
 
 
 
 
 
140
 
141
+ if ( !isset($_POST['rawhtml_nonce']) ) {
142
+ return $post_id;
143
+ }
144
+
145
+ if ( !wp_verify_nonce($_POST['rawhtml_nonce'], plugin_basename(RAWHTML_PLUGIN_FILE)) ) {
146
+ return $post_id;
147
+ }
148
+
149
+ if ( !current_user_can('edit_post', $post_id) ) {
150
+ return $post_id;
151
+ }
152
+
153
+ // OK, we're authenticated: we need to find and save the data
154
+ $fields = rawhtml_get_settings_fields();
155
+ $new_settings = array();
156
+ foreach ($fields as $field) {
157
+ if ( !empty($_POST['rawhtml_' . $field]) ) {
158
+ $new_settings[$field] = true;
159
+ } else {
160
+ $new_settings[$field] = false;
161
+ };
162
+ }
163
+ rawhtml_save_post_settings($post_id, $new_settings);
164
 
165
+ return true;
166
  }
167
 
168
  //Add our panel to the "Screen Options" box
330
  $esc_field = esc_attr($field);
331
  $output .= sprintf(
332
  '<label for="rawhtml_default-%s" style="line-height: 20px;">
333
+ <input type="checkbox" name="rawhtml_default-%s" id="rawhtml_default-%s" %s>
334
  %s
335
  </label><br>',
336
  $esc_field,
include/tag-handler.php CHANGED
@@ -27,6 +27,9 @@ function wsh_extract_exclusions($text, $keep_tags = false){
27
  array('@<!--raw' . $shortcode_flag . '-->@i', '<!--/raw-->')
28
  );
29
 
 
 
 
30
  foreach ($tags as $tag_pair){
31
  list($start_regex, $end_tag) = $tag_pair;
32
 
@@ -46,7 +49,12 @@ function wsh_extract_exclusions($text, $keep_tags = false){
46
  //extract the content between the tags
47
  $content = substr($text, $content_start,$fin-$content_start);
48
 
49
- if ( (array_search('get_the_excerpt', $wp_current_filter) !== false) || (array_search('the_excerpt', $wp_current_filter) !== false) ){
 
 
 
 
 
50
  //Strip out the raw blocks when displaying an excerpt
51
  $replacement = '';
52
  } else {
27
  array('@<!--raw' . $shortcode_flag . '-->@i', '<!--/raw-->')
28
  );
29
 
30
+ $is_excerpt_stripping_enabled = !defined('RAW_HTML_KEEP_RAW_IN_EXCERPTS')
31
+ || !constant('RAW_HTML_KEEP_RAW_IN_EXCERPTS');
32
+
33
  foreach ($tags as $tag_pair){
34
  list($start_regex, $end_tag) = $tag_pair;
35
 
49
  //extract the content between the tags
50
  $content = substr($text, $content_start,$fin-$content_start);
51
 
52
+ if ( $is_excerpt_stripping_enabled
53
+ && (
54
+ (array_search('get_the_excerpt', $wp_current_filter) !== false)
55
+ || (array_search('the_excerpt', $wp_current_filter) !== false)
56
+ )
57
+ ){
58
  //Strip out the raw blocks when displaying an excerpt
59
  $replacement = '';
60
  } else {
raw_html.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Raw HTML
4
  Plugin URI: http://w-shadow.com/blog/2007/12/13/raw-html-in-wordpress/
5
  Description: Lets you enter any HTML/JS/CSS in your posts without WP changing it, as well as disable automatic formatting on a per-post basis. <strong>Usage:</strong> Wrap your code in [raw]...[/raw] tags. To avoid problems, only edit posts that contain raw code in HTML mode. <strong><a href="http://rawhtmlpro.com/?utm_source=RawHTML%20free&utm_medium=plugin_description&utm_campaign=Plugins">Upgrade to Pro</a></strong> to be able to use Visual editor on the same posts without it messing up the code.
6
- Version: 1.5.1
7
  Author: Janis Elsts
8
  Author URI: http://w-shadow.com/
9
  */
3
  Plugin Name: Raw HTML
4
  Plugin URI: http://w-shadow.com/blog/2007/12/13/raw-html-in-wordpress/
5
  Description: Lets you enter any HTML/JS/CSS in your posts without WP changing it, as well as disable automatic formatting on a per-post basis. <strong>Usage:</strong> Wrap your code in [raw]...[/raw] tags. To avoid problems, only edit posts that contain raw code in HTML mode. <strong><a href="http://rawhtmlpro.com/?utm_source=RawHTML%20free&utm_medium=plugin_description&utm_campaign=Plugins">Upgrade to Pro</a></strong> to be able to use Visual editor on the same posts without it messing up the code.
6
+ Version: 1.6
7
  Author: Janis Elsts
8
  Author URI: http://w-shadow.com/
9
  */
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: whiteshadow
3
  Tags: posts, formatting, javascript, html, css, code, disable
4
  Requires at least: 2.8
5
- Tested up to: 4.9
6
- Stable tag: 1.5.1
7
 
8
  Lets you use raw HTML or any other code in your posts. You can also disable smart quotes and other automatic formatting on a per-post basis.
9
 
@@ -50,8 +50,18 @@ By default, shortcodes that are inside [raw] tags will not work. They will just
50
 
51
  [raw]This [shortcode] won't work.[/raw]`
52
 
 
 
 
 
 
 
 
 
53
  **Notes**
54
 
 
 
55
  Some features of Raw HTML will only work for users who have the "unfiltered_html" capability. In a normal WordPress install that includes the Editor and Administrator roles. In a Multisite install, only the Super Admin has this capability by default.
56
 
57
  == Installation ==
@@ -80,6 +90,11 @@ Open to the post editor and click the "Screen Options" button in the top-right p
80
 
81
  == Changelog ==
82
 
 
 
 
 
 
83
  = 1.5.1 =
84
  * Added limited support for the page builder included with GoodLayers themes (e.g. Mediso).
85
  * Tested with WP 4.8.2 and 4.9-beta1.
2
  Contributors: whiteshadow
3
  Tags: posts, formatting, javascript, html, css, code, disable
4
  Requires at least: 2.8
5
+ Tested up to: 5.2
6
+ Stable tag: 1.6
7
 
8
  Lets you use raw HTML or any other code in your posts. You can also disable smart quotes and other automatic formatting on a per-post basis.
9
 
50
 
51
  [raw]This [shortcode] won't work.[/raw]`
52
 
53
+ **Preserving `[raw]` code in excerpts**
54
+
55
+ By default, the plugin will automatically remove any code that's inside `[raw]...[/raw]` tags from post excerpts. You can prevent that by adding the following line to `wp-config.php`:
56
+
57
+ `define('RAW_HTML_KEEP_RAW_IN_EXCERPTS', true);`
58
+
59
+ This will ensure that the plugin doesn't strip `[raw]` blocks from automatically generated excerpts.
60
+
61
  **Notes**
62
 
63
+ This plugin doesn't fully support the Gutenberg editor. It will only work with the classic post editor.
64
+
65
  Some features of Raw HTML will only work for users who have the "unfiltered_html" capability. In a normal WordPress install that includes the Editor and Administrator roles. In a Multisite install, only the Super Admin has this capability by default.
66
 
67
  == Installation ==
90
 
91
  == Changelog ==
92
 
93
+ = 1.6 =
94
+ * Added a way to preserve `[raw]` blocks in post excerpts.
95
+ * Enabled the "Raw HTML" metabox for custom post types.
96
+ * Tested up to WP 5.2 (only with the Classic Editor).
97
+
98
  = 1.5.1 =
99
  * Added limited support for the page builder included with GoodLayers themes (e.g. Mediso).
100
  * Tested with WP 4.8.2 and 4.9-beta1.