私はプラグインのプロバージョンから、フロントエンドのテキストエリアのためにWordPressのtinyMCEエディタを有効にしようとしています。
私は一時的にbogusの方法で問題を解決しました:
無料版では:
wp_editor(
$details_val, //content
'pre-details', //editor ID
array('tinymce'=>false),
);
それからプロバージョンから、フィルタフックで、true
に 'tinymce'値を作りました。ハハハ...
これがフロントエンドの私のtextareaです。
<textarea class="tinymce-enabled" rows="5" cols="40" name="pre_details" id="pre-details"><?php echo $details_val; ?></textarea>
私はjQueryで次の機能を試してみました:
jQuery(document).ready(function($) {
tinymce.init({
selector :"pre-details",
mode : "specific_textareas",
theme : "simple",
editor_selector :"tinymce-enabled"
});
});
そしてファイルは次のように呼ばれます。
function pre_scripts() {
if( is_page('xyz') ) {
wp_enqueue_script( 'pre-scripts', Pre()->plugin_url() .'/assets/js/pre-scripts.min.js', array('jquery', 'tiny_mce'), Pre()->version, true );
}
}
add_action( 'wp_enqueue_scripts', 'pre_scripts' );
まず第一に、'tiny_mce'
依存関係を使用しない場合、tinymce.init()
はそのような関数を見つけられないというエラーを示しますが、私のカスタムスクリプトはロードされます。しかし、'tiny_mce'
依存関係を追加した場合、私のカスタムスクリプトはロードされません。しかし、フックは devのリソースに記載されています 。
私は このWPSEスレッドを見つけました 、それは古くからの問題であることを示唆しています。しかし、そこに示されている回避策は私の問題を解決しません。
私はまた異なるバージョンを試してみました:
$(function() {
$('textarea.tinymce-enabled').tinymce({
mode : "specific_textareas",
theme : "simple",
});
});
そして
tinyMCE.execCommand('mceAddControl', false, 'pre-details');
しかし、運はありません。その依存関係が私のスクリプトをデキューするので、
または、Tinymceコアスクリプトをロードする代替方法が私のスクリプトに準拠していません。
wp_editor()
を使わずに、プラグイン可能な方法でWordPressのtinyMCEリッチテキストエディタをフロントエンドのテキストエリアにロードするにはどうすればいいですか?
あなたがフロントエンドにwp_editorを必要としないならば、私はそれが大丈夫だと思います。ここであなたのtinymce initを使った少し異なるオプション設定。フロントエンドではwp_editorなしでこれを使います。
<script>
jQuery( document ).ready( function( $ ) {
tinymce.init( {
mode : "exact",
elements : 'pre-details',
theme: "modern",
skin: "lightgray",
menubar : false,
statusbar : false,
toolbar: [
"bold italic | alignleft aligncenter alignright | bullist numlist outdent indent | undo redo"
],
plugins : "paste",
paste_auto_cleanup_on_paste : true,
paste_postprocess : function( pl, o ) {
o.node.innerHTML = o.node.innerHTML.replace( / +/ig, " " );
}
} );
} );
</script>
コンテンツを取得する
tinymce.get('pre-details').getContent()
WP function wp_enqueue_scripts に
wp_enqueue_script( 'tinymce_js', includes_url( 'js/tinymce/' ) . 'wp-tinymce.php', array( 'jquery' ), false, true );
あなたはあなたのスタイルのeditor.min.cssをエンキューすることができます。