Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Call TinyMCE in a WordPress plugin

Is there a way to add TinyMCE into my own WordPress plugin?

I have a textarea in my back end script and want to make this area into a TinyMCE WYSIWYG editable field. Is there a way to do that?

wysiwyg demonstration screenshot

This code does not work for me:

<?php     wp_tiny_mce(false,array("editor_selector" => "test")); ?> <textarea class="test" id="test" name="test"></textarea> 

It shows the javascript error

f is undefined 

Firebug screenshot: TinyMCE error

This didn't work either:

<textarea class="theEditor" id="videogalerie-add_description" name="videogalerie-add_description"></textarea> 
like image 301
choise Avatar asked May 18 '10 09:05

choise


People also ask

How do I use TinyMCE in WordPress?

Log in to your WordPress Dashboard, click Plugins, then Add New. Search for the Advanced TinyMCE Configuration plugin, then click Install Now. Once the plugin is installed, click Activate.

How do I update TinyMCE on WordPress?

To do so, log into your site's admin area (http://yoursite.com/wp-login.php) and then navigate to Plugins > Add New using the sidebar menu. From the Add Plugins screen, enter 'tinymce advanced' in the search field and then install the first item listed in the results.


2 Answers

This is much easier to do in WordPress 3.3 using the wp_editor() function.

I'm working on a plugin that will add a TinyMCE instance to a theme options page. Here's what it looks like:

// Add TinyMCE visual editor wp_editor( $content, $id ); 

Where $content is the stored content and $id is the name of the field. Options can also be passed to customize the TinyMCE functionality, check out the WordPress Codex for more details.

like image 96
Kevin Leary Avatar answered Sep 20 '22 07:09

Kevin Leary


Camden already answered this, but in case somebody needs the full code... Be sure to hook in admin_head, hooking into admin_enqueue_scripts will cause it to load before other scripts, such as jQuery, so it will not work.

add_action("admin_head","load_custom_wp_tiny_mce"); function load_custom_wp_tiny_mce() {  if (function_exists('wp_tiny_mce')) {    add_filter('teeny_mce_before_init', create_function('$a', '     $a["theme"] = "advanced";     $a["skin"] = "wp_theme";     $a["height"] = "200";     $a["width"] = "800";     $a["onpageload"] = "";     $a["mode"] = "exact";     $a["elements"] = "intro";     $a["editor_selector"] = "mceEditor";     $a["plugins"] = "safari,inlinepopups,spellchecker";      $a["forced_root_block"] = false;     $a["force_br_newlines"] = true;     $a["force_p_newlines"] = false;     $a["convert_newlines_to_brs"] = true;      return $a;'));   wp_tiny_mce(true); }   } 

Then somewhere in your template insert a regular textarea:

<textarea id="intro"></textarea> 
like image 25
Andy Avatar answered Sep 20 '22 07:09

Andy