Fix WordPress Editor on a Free GoDaddy Hosted Site

Did you register a domain name with GoDaddy? Did you use the "free hosting credit" to setup your website's hosting? Having problems getting the visual editor to work on your new WordPress blog? Then join the club - GoDaddy's infamous injected ads break the Javascript code that makes the TinyMCE visual editor work. Luckily, it's fixable, and here's how.

The Symptoms

There are quite a few things that can cause the WordPress WYSIWYG editor to break. Using GoDaddy's free hosting service is certainly one of them. A couple ways that you can tell you're experiencing the "GoDaddy" problem:

1. On the "Write Post" page, the post toolbar looks like this:

broken visual editor

Instead of this:

working visual editor

2. After browsing to the "Write Post" page in Firefox, open the error console by going to Tools > Error Console. This will is displayed:

3. Clicking the "HTML" button does nothing.

The Fix

Correcting this error involves a slight edit to one of the core WordPress PHP files, namely "script-loader.php". Please do so at your own risk. This fix has been tested on WordPress 2.6.3 with IE7 and Firefox 3.

Step 1

Fire up your FTP client and FTP into the website you've got hosted on GoDaddy's server. I used FireFTP in this example. From here on, we'll assume that WordPress is installed in the "/blog" directory.

Step 2

We've got to get the TinyMCE Javascript code from the Javascript cache on the server. Browse to the "/blog/wp-content/uploads/js_cache" directory in your FTP client.

gzipped TinyMCE

Look for a file named like this:

tinymce_(a bunch of numbers and letters).gz

Download it. Extract the contents of the file (you can use WinRar, Winzip, or 7-Zip). Rename the extracted javascript file from:

tinymce_(a bunch of numbers and letters)

to:

tinymce_fixed.js

Upload tinymce_fixed.js to the "/blog/wp-content/uploads/js_cache" directory on the GoDaddy server.

TinyMCE javascript

Note: If the file "tinymce_(a bunch of numbers and letters).gz" doesn't exist on the GoDaddy server, but a file named "tinymce_(a bunch of numbers and letters).js" does, then rename the .js file to "tinymce_fixed.js" without the quotes. No downloading or extracting is required.

If the js_cache directory doesn't exist, then either WordPress doesn't have write permission to the wp-content folder, or you haven't opened the "Write Post" page yet.

Step 3

In your FTP client, download the file "/blog/wp-includes/script-loader.php".

Open script-loader.php in your favorite editor, and comment out line 41. Beneath that, insert the following new line of code:

$scripts->add( 'tiny_mce', '/wp-content/uploads/js_cache/tinymce_fixed.js', array('editor_functions'), $mce_version );

The code should now look like this:

//$scripts->add( 'tiny_mce', '/wp-includes/js/tinymce/tiny_mce_config.php', array('editor_functions'), $mce_version );
$scripts->add( 'tiny_mce', '/wp-content/uploads/js_cache/tinymce_fixed.js', array('editor_functions'), $mce_version );

Upload and replace the script-loader.php file on the GoDaddy server. You should then be good to go. Also, make sure the "Use the visual editor when writing" option is enabled on your WordPress profile page.

Notes

Please be aware that if you upgrade WordPress, you'll have to repeat this process to get the visual editor working again. Same thing if you re-configure TinyMCE's settings in any way.

Conclusion

GoDaddy's free hosting service places an ad at the top of your content using injected Javascript. This seems to happen regardless of the response content-type headers when a PHP page is requested.

Comments

  1. BreemiaClem

    Kick-ass blogpost, great looking website, added it to my favs!

  2. Cal

    Thanks for the solution...I'm using WP 2.9.2 and I have no Idea what to do. Any help?

  3. @Cal, I haven't had a chance to test this fix on WP 2.9.2 (got rid of godaddy hosting a while ago). I'd suggest giving this tutorial a try. One thing that might be different is Step 3 above - the line number of the code you have to change in the file:

    /blog/wp-includes/script-loader.php

    has probably changed. If it's not on line 41, just search the script-loader.php file for the correct line and change it.

  4. Tim white if it doesn't work as you host wordpress support they will help you.

  5. thank you
    thank you
    thank you
    thank you

Leave a Comment