Raw HTML Plugin for WordPress
Introduction
Recently I needed to put some style definitions and a JavaScript function in a post on another blog that I have. I wasted several hours trying to do this, because WordPress insisted on putting backslashes in front of my apostrophes, inserting superfluous <p> or <br /> tags in place of newlines, and generally breaking my HTML in various horrible ways.
In the end I decided to just go and write a plugin that would let me put any code or script (e.g. JavaScript) in my posts and display it to the visitor unmodified.
Download & Installation
raw-html.zip (3 KB)
Requirements :
- WordPress 2.3.1 – 2.7
- Disable visual editor for better results – some characters (e.g. the ampersand) may still be encoded if it’s enabled.
Installation is straightforward – download the zip file, unzip, upload the raw-html folder to /wp-content/plugins and activate it in the Plugins tab.
Usage
There are two ways to use the plugin. First, to turn off “smart quotes” and other built-in filters for an entire post, use the checkboxes that Raw HTML adds to the “Write” screen (requires WP 2.5+) :

If you want to prevent a specific part of your post or page from being processed and “texturized” by WordPress, wrap it in <!–start_raw–>…<!–end_raw–> or [RAW]…[/RAW] tags. The two versions work exactly the same, but the latter may be handy if you’re using the visual editor (not recommended).
Example :
<!--start_raw-->
This
is
a 'test'!
<!--end_raw-->
Result :
This
is
a 'test'!
If you view the source code of this page, you will see that the newlines are still there, and the apostrophes haven’t been converted/escaped.
Other Notes
This plugin is provided AS IS, with no guarantee that it will work on your site. If it works for you, consider yourself lucky
Love this plugin. Would love to see 2.5 compatibility.
@gazete oku – I think it’s compatible, though I haven’t tested it extensively. This blog uses WP 2.6 and the example in the post seems to work correctly.
I am not sure if it was the recent WP update or what, but this plug-in doesn’t seem to allow for php to be executed. If you view source, it simply prints the php source code. None of it is parsed. :/
Any advice?
- Esteban
@Esteban – This plugin was never intended for executing PHP. You will need a different plugin like Exec-PHP for that.
(testing possible commenting problem…) (this post can be deleted if it works) (sure wish i had comment previewing…) (btw, the problem was with FF3 and I am trying this on IE 6 now)
@White Shadow – Oh. I didn’t realize that. When I read the description, it said “In the end I decided to just go and write a plugin that would let me put any code or script in my posts and display it to the visitor unmodified.”
I thought any code included php. Did you mean only Java script and html?
As for Exec-PHP, I do use it. however, unless you enclose the whole post in the php brackets, Wordpress will add parsing. That is why I was excited about your plug in. Here is an example (curlies instead of brackets):
CODE with Exec-PHP:
——————
line 0: {?php echo “stuff”; ?}
line 1:
line 2: {h1}title{/h1}
line 3:
line 4: {?php echo “more stuff”; ?}
WP output with Exec-PHP:
——————
stuff
TITLE
more stuff
——————
As you can see, there are line breaks added because WP is annoying. lol.
Now, with your plugin, what I had hoped to do because I thought in included php code was the following:
CODE with Exec-PHP and Raw HTML:
——————
line 0: {!–start_raw–}
line 1: {?php echo “stuff”; ?}
line 2:
line 3: {h1}title{/h1}
line 4:
line 5: {?php echo “more stuff”; ?}
line 6: {!–end_raw–}
——————
Desired WP output with Exec-PHP and Raw HTML:
——————
stuff
TITLE
more stuff
——————
Anyway, that is what I expected since you said that we code execute ANY code or script. :/
It’s okay if you don’t want to include this ability. I don’t want to tell you how to right your code and I CAN echo all the html with php (which would be annoying, but possible).
I do hope you can update this post though to better reflect what “any code or script” means.
Thanks for all your work my friend!
Esteban
(Ps – I don’t know what was up with your WP-SpamFree plugin, but I wasn’t able to post this with FireFox3.)
@Esteban – Yes, it was for JS/HTML. And your example might work if you did it like this :
line 1: {?php echo “stuff”; ?}{!–start_raw–}
line 2:
line 3: {h1}title{/h1}
line 4:
line 5: {!–end_raw–}{?php echo “more stuff”; ?}
Though that would likely become tedious in practical situations.
WP-SpamFree might cause problems if you have JS and/or cookies disabled, but there may be other possibilities that I’m not aware of.
@White Shadow – Thanks for the type. Unfortunately, I have tried that as well. I basically used the {!–start/end_raw–} tags to kill WordPress auto-formatting. You simply can’t use RAW HTML with Exec-PHP.
Echoing line by line or even in EXCERPTS can be handy, but when you want to print variables within it, that it turns out to be a problem. :-/
Anyway, thanks for the replies. Also, thanks for plugging the Javascript addition in there. I think it will clear thing up for folks. Now it’s time for me to either find another plug-in or write one myself (which will suck because I know in two weeks I will find out that I just reinvented the wheel and someone else already did it. lol)
As for the WP-SpamFree, it warned me of the exact problems you suggested both of which were not the case. All well. That’s why I use multiple browsers.
@White Shadow – PS, the last post was in FF3 and worked this time. lol. I love the consistency of inconsistency.
@Esteban – Ah well, good luck
Great, works on a 2.6.1 (test, different theme) blog I’m considering migrating to – from 2.3.3 – it allowed me to put html tables into a page, I was pulling what’s left of my hair out before !
Many thanks, Alan.
This is -JUST- what i was looking for. Thank you so much!
[...] Raw HTML позволяет вставлять при написании / редактировании [...]
This plugin is a lifesaver. Simple and effective. Just a note, it’s not compatible with the tinymce-advanced plugin. Thanks a million!
@Aardvark – Yes, it hasn’t been extensively tested with the visual editor.
[...] Raw HTML capability; [...]
Is it possible to apply the plugin to all posts and pages? (without using the [raw][/raw] every time)
@nirsound – not in this implementation, but it’s an interesting idea.
This is a great plugin
I’ve been looking all over the Internet for a way to do this. Thanks for sharing and making my day even better!
Thanks! I am looking forward to general setting “Apply Raw HTML to all posts and pages” in the next release….
Meanwhile, can you think of a simple change to the plugin code to force wordpress to default to Raw HTML mode? (without writing the {!–start_raw–}{!–end_raw–} every time)
When I finally get around to updating my old plugins, perhaps
[...] HTML Update The Raw HTML plugin has been updated! In case you didn’t know, Raw HTML is my WordPress plugin that lets you use [...]
[...] Another case if we want to put any special characters (apostrophie, quote) and any script. To enable javascript and put RAW HTML inside wp post, we must install RAW HTML [...]
[...] Raw HTML [...]
[...] Are you trying to add a flash object inside a wordpress post using the <object> tag? Your post will probably look screwed up. So if you don’t care about xhtml and all that stuff try the easy fix: get the raw html plugin [...]
I really love this plug in (the raw html one). I am new at wordpress blogging and it was so easy!
Thanks!!
tnx a lot, this is the most critical plugin I use
Unfortunately, when I tried this, I still had the problem I was having before – with the auto-formatting, if I put line breaks in my table coding to make it manageable, there will be a huge block of space above each table, the sum of all the line breaks in the coding. on LJ, I know that turning the auto-formatting off will fix that and I was hoping that this would do the same. Unfortunately, I still got the large chunks of space, both when I checked the box and when I ran the !-start_raw codes.
Hmm, how about an example of the problematic HTML?