私はユーザーがフロントエンドからコンテンツを追加できることを要求するクライアント用のBuddyPressプラグインに取り組んでいます - 彼らはセキュリティ上の理由からバックエンドを見ることは決してありません。私はプラグインを書いてあり、それは完璧に動作しますが、それは1つ欠けています:ユーザーが自分のコンテンツをカスタマイズできるようにするためのリッチテキストエディタ(もちろん、当然のことながら)。今まで、私はクライアントからのこのリクエストを無視し、それ以上の作業がなければ不可能であると説明しました。
しかし今日、私は3.3にアップグレードし、新しいwp_editor
タグに気付きました。 here の例をいくつか試してみましたが、正しく動作させることができません(最低限の呼び出しではエディタが生成されますが、タブとメディアボタンは機能しません。基本的なTinyMCE設定配列では何も得られません) Chromeの開発者ツールで調べたところ、フロントエンドに含まれていないJavaScriptファイルが管理領域に含まれていることがわかりました。これらのファイルをインクルードしてこれを機能させるための最善の方法は何ですか?ありがとうございます。
wp_editor
は、変数に入れずにechoを出力します。変数に入れたい場合は、
ob_start();
wp_editor($content, 'textarea_rich', $args);
$html = ob_get_contents();
ob_end_clean();
$html
に必要なものがあります。 https://plugins.svn.wordpress.org/indypress/tags/1.0/indypress/form_inputs/tinymce.php を使用して実装を確認することもできます。
私が指摘した別の問題は、いくつかの問題がw3合計キャッシュミニファイにあることです(実際、wp <= 3.2で使用されている関数wp_tiny_mce
に問題がありました。wp_editor
も)
まだ作業中かどうかわからないが、 "WP User Frontend"プラグインを試すことができます。それはまさにあなたが望むものを行います。
次のコードはあなたのために働くはずです。 textarea
idがすべて小文字で英数字であることを確認してください。
$post = get_post( $post_id, 'OBJECT' );
$args = array(
'wpautop' => true,
'media_buttons' => true,
'editor_class' => 'frontend',
'textarea_rows' => 5,
'tabindex' => 1
);
wp_editor( esc_html( $post->post_content ), 'textareaid2', $args );
wp_editor
関数のドキュメントは このCodexページ にあります。
bodyタグを閉じる直前に、これをあなたのテーマのフッターに追加してください。
<?php wp_footer(); ?>
wp_editor用のエディタスクリプトはすべてフッターに出力されます。テーマにこのタグがない場合はdo_action('wp_footer');
が呼び出され、エディタは機能しません。