SO网友:Rev. Voodoo
也许有人可以拿着它跑。。。。这是(我认为)来自不同地方的大部分已完成的代码。如果我记得零件是从哪里来的,我会相信。。。。
// COMMENT FIELD EXPERIMENT
// LOADS REQUIRED FILES FOR TINYMCE ON FRONTEND
function voodoo_load_scripts() {
// scripts (and styles) for media uploads
add_thickbox();
$media_upload_js = "/wp-admin/js/media-upload.js";
wp_enqueue_script( \'media-upload\', get_bloginfo(\'wpurl\') . $media_upload_js, array( \'thickbox\' ), filemtime( ABSPATH . $media_upload_js ) );
// utils depdency for tinymce
$utils_js = "/wp-admin/js/utils.js";
wp_enqueue_script( \'utils\', get_bloginfo(\'wpurl\') . $utils_js, array( ), filemtime( ABSPATH . $utils_js ) );
}
function voodoo_tinymce_config($initArray) {
$initArray[\'theme_advanced_resize_horizontal\'] = false;
$initArray[\'theme_advanced_path\'] = false;
return $initArray;
}
add_filter(\'tiny_mce_before_init\', \'voodoo_tinymce_config\');
// LOADS UP TINYMCE
function voodoo_load_tinymce() {
require_once( ABSPATH . "wp-admin/includes/post.php" );
wp_tiny_mce();
}
add_action( \'wp_head\', \'voodoo_load_tinymce\' );
//BUILDS A LIST OF ALLOWED TAGS
function voodoo_allowed_tags() {
global $allowedposttags, $allowedtags;
if ( ! defined( \'CUSTOM_TAGS\' ) )
define( \'CUSTOM_TAGS\', true );
$allowedposttags = array(
\'strong\' => array(),
\'em\' => array(),
\'u\' => array(),
\'span\' => array(
\'align\' => array (),
\'class\' => array (),
\'id\' => array (),
\'style\' => array (),
),
\'s\' => array(),
\'p\' => array(
\'align\' => array (),
\'class\' => array (),
\'id\' => array (),
\'style\' => array (),
),
\'address\' => array(),
\'pre\' => array(
\'style\' => array(),
),
\'h1\' => array(
\'align\' => array (),
\'class\' => array (),
\'id\' => array (),
\'style\' => array (),
),
\'h2\' => array (
\'align\' => array (),
\'class\' => array (),
\'id\' => array (),
\'style\' => array (),
),
\'h3\' => array (
\'align\' => array (),
\'class\' => array (),
\'id\' => array (),
\'style\' => array (),
),
\'h4\' => array (
\'align\' => array (),
\'class\' => array (),
\'id\' => array (),
\'style\' => array (),
),
\'h5\' => array (
\'align\' => array (),
\'class\' => array (),
\'id\' => array (),
\'style\' => array (),
),
\'h6\' => array (
\'align\' => array (),
\'class\' => array (),
\'id\' => array (),
\'style\' => array (),
),
\'ul\' => array(),
\'ol\' => array(),
\'li\' => array(),
\'blockquote\' => array(
\'id\' => array (),
\'cite\' => array (),
\'class\' => array(),
),
\'a\' => array(
\'href\' => array(),
\'title\' => array(),
\'name\' => array(),
\'target\' => array(),
),
\'img\' => array(
\'class\' => array(),
\'style\' => array(),
\'src\' => array(),
\'alt\' => array(),
\'width\' => array(),
\'height\' => array(),
),
\'sup\' => array(),
\'sub\' => array(),
\'br\' => array (
\'class\' => array()
)
);
$allowedtags = array(
\'strong\' => array(),
\'em\' => array(),
\'u\' => array(),
\'span\' => array(
\'align\' => array (),
\'class\' => array (),
\'id\' => array (),
\'style\' => array (),
),
\'s\' => array(),
\'p\' => array(
\'align\' => array (),
\'class\' => array (),
\'id\' => array (),
\'style\' => array (),
),
\'address\' => array(),
\'pre\' => array(
\'style\' => array(),
),
\'h1\' => array(
\'align\' => array (),
\'class\' => array (),
\'id\' => array (),
\'style\' => array (),
),
\'h2\' => array (
\'align\' => array (),
\'class\' => array (),
\'id\' => array (),
\'style\' => array (),
),
\'h3\' => array (
\'align\' => array (),
\'class\' => array (),
\'id\' => array (),
\'style\' => array (),
),
\'h4\' => array (
\'align\' => array (),
\'class\' => array (),
\'id\' => array (),
\'style\' => array (),
),
\'h5\' => array (
\'align\' => array (),
\'class\' => array (),
\'id\' => array (),
\'style\' => array (),
),
\'h6\' => array (
\'align\' => array (),
\'class\' => array (),
\'id\' => array (),
\'style\' => array (),
),
\'ul\' => array(),
\'ol\' => array(),
\'li\' => array(),
\'blockquote\' => array(
\'id\' => array (),
\'cite\' => array (),
\'class\' => array(),
),
\'a\' => array(
\'href\' => array(),
\'title\' => array(),
\'name\' => array(),
\'target\' => array(),
),
\'img\' => array(
\'class\' => array(),
\'style\' => array(),
\'src\' => array(),
\'alt\' => array(),
\'width\' => array(),
\'height\' => array(),
),
\'sup\' => array(),
\'sub\' => array(),
\'br\' => array (
\'class\' => array()
)
);
}
add_action( \'init\', \'voodoo_load_scripts\' );
add_action( \'init\', \'voodoo_allowed_tags\' );
//PUT IT IN OUR FORM
add_filter( \'comment_form_defaults\', \'voodoo_comment_form_defaults\' );
function voodoo_comment_form_defaults( $defaults ) {
$defaults[\'comment_field\'] = \'<p class="comment-form-comment"><label for="comment">\' . _x( \'Comment\', \'twentyten\' ) . \'</label><textarea class="theEditor" id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p>\';
return $defaults;
}
这就是它的作用。我们为tinymce装上了所有需要的垃圾。但是tinymce允许使用html标记,而WP不允许从前端使用html标记。因此,我们需要考虑em。然后在底部,我们需要将theEditor类添加到注释表单中。因为我在我的主题中使用了commentform,所以我可以使用它。如果没有,可以将该类直接添加到textarea。
这会将编辑器添加到注释表单中。但工作还没有完成。它看起来像垃圾,我对它感到厌倦了。也许有人可以把它弄得好看,我不知道这是不是css冲突或什么。
此外,我们允许的所有html标记现在都列在“允许的标记”部分的注释表单下。也许最好完全隐藏它们,如果你让tinymce工作起来,那么这些信息就不需要了。
它仍然需要工作,并且只在登录时按原样工作。。。。。因此,如果你能找到一个插件,我想这可能是最好的选择