web-dev-qa-db-ja.com

フロントエンドのwp_editor - JavaScriptは含まれていません

私はユーザーがフロントエンドからコンテンツを追加できることを要求するクライアント用のBuddyPressプラグインに取り組んでいます - 彼らはセキュリティ上の理由からバックエンドを見ることは決してありません。私はプラグインを書いてあり、それは完璧に動作しますが、それは1つ欠けています:ユーザーが自分のコンテンツをカスタマイズできるようにするためのリッチテキストエディタ(もちろん、当然のことながら)。今まで、私はクライアントからのこのリクエストを無視し、それ以上の作業がなければ不可能であると説明しました。

しかし今日、私は3.3にアップグレードし、新しいwp_editorタグに気付きました。 here の例をいくつか試してみましたが、正しく動作させることができません(最低限の呼び出しではエディタが生成されますが、タブとメディアボタンは機能しません。基本的なTinyMCE設定配列では何も得られません) Chromeの開発者ツールで調べたところ、フロントエンドに含まれていないJavaScriptファイルが管理領域に含まれていることがわかりました。これらのファイルをインクルードしてこれを機能させるための最善の方法は何ですか?ありがとうございます。

4
Joseph Leedy

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も)

2
boyska

まだ作業中かどうかわからないが、 "WP User Frontend"プラグインを試すことができます。それはまさにあなたが望むものを行います。

0
Amal

次のコードはあなたのために働くはずです。 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ページ にあります。

0
byjml

bodyタグを閉じる直前に、これをあなたのテーマのフッターに追加してください。

<?php wp_footer(); ?>

wp_editor用のエディタスクリプトはすべてフッターに出力されます。テーマにこのタグがない場合はdo_action('wp_footer');が呼び出され、エディタは機能しません。

0
dwenaus