多分CSS,javascriptのDOM操作,以外では、難しいと思います
class-wp-editor.php line:114
$buttons .= '<a id="' . $editor_id . '-html" class="wp-switch-editor switch-html" onclick="switchEditors.switchto(this);">' . _x( 'Text', 'Name for the Text editor tab (formerly HTML)' ) . "</a>\n";
$buttons .= '<a id="' . $editor_id . '-tmce" class="wp-switch-editor switch-tmce" onclick="switchEditors.switchto(this);">' . __('Visual') . "</a>\n";
となっており、echo $buttons; しているだけなので、
翻訳ファイルを操作して、テキストを消す事は出来ますが(多分)、cssでやるより悪いやり方になると思います。
function my_default_editor() {
$r = 'tinymce'; // html or tinymce
return $r;
}
add_filter( 'wp_default_editor', 'my_default_editor' );
のように、ビジュアルエディタを強制しておいて、CSSで表示するだけで、十分な感じがしますが、どのような問題で、CSS以外の選択肢を探しているのですか?
nobitaさん
ご返信ありがとうございます。
利用者が投稿出来るサイトを作ることを考えていまして、
利用者が投稿画面でhtmlエディタを使用できる場合、
ヘタにコードを埋め込まれる、といったようなことが発生してしまうと
面倒なことになると思い、
最初からビジュアルエディタだけにしたい、という意図がありました。
現状は、nobitaさんがおっしゃってくださっていますように、
ビジュアルエディタの強制+CSSによる消去という形にしています。
Adminimizeというプラグインでhtmlエディタの消去なども
行ってみましたが、投稿画面でバグが発生してしまっていたので、
プラグインを使用せず、コードで対応しています。
display:none;だけだと心細いと言いましょうか・・
少し不安な部分もあったので、質問させていただきました。
やはり、cssでの対応が無難なのでしょうか?
遅くなってごめんなさい
利用者が投稿出来るサイトを作ることを考えていまして、
利用者が投稿画面でhtmlエディタを使用できる場合、
ヘタにコードを埋め込まれる、といったようなことが発生してしまうと
面倒なことになると思い、
最初からビジュアルエディタだけにしたい、という意図がありました。
という事だと、htmlタブの表示を制限したくらいだと 不十分だと考えておられるのは当然だと思います。
タブで制限しただけだと、プラグインから、挿入されるような場合、xml-rpcなどから挿入される場合などでは、タグの利用が禁止されているわけではないので、意図しない書き込みが発生する可能性は否定できません。
htmlタグそのものを、制限することをお考えになってみてはどうか と思います。
http://wpengineer.com/1963/customize-wordpress-wysiwyg-editor/
http://codex.wordpress.org/Function_Reference/wp_kses
nobitaさん
貴重なご意見ありがとうございます。
nobitaさんが教えてくださいましたリンクを拝見しました。
ただ、そのリンクを読んだところで、どのようにすればよいのかが
わかりませんでした。
nobitaさんの分かる範囲で結構ですので、
もう少し具体的な解説をいただけませんでしょうか?
わがままなお願いで申し訳ありませんが、
もしよろしければ、また返信をいただけますと嬉しいです。
ワードプレスでは、管理者は、自由にhtml要素を利用できますが、それ以外の権限しか持っていない場合は、利用できる要素が多少制限されます。
個人的なメモ:
http://tenman.info/labo/snip/memo/%E6%A8%A9%E9%99%90%E5%88%A5%E3%80%80%E5%88%A9%E7%94%A8%E5%8F%AF%E8%83%BD%E3%81%AA%E3%82%BF%E3%82%B0%E4%B8%80%E8%A6%A7
例えばですが、
テーマのfunctions.phpに貼り付けてください。(一番最初の<?php
の手前に)
<?php
add_filter( 'the_content', 'my_html_filter' );
function my_html_filter( $content ) {
//リンク要素だけ許可とか
$content = wp_kses($content, array( 'a' => array( 'href' => array() ) ));
return wpautop( $content );
//他にも、コメントで使える要素だけ許可
// return wpautop( $content );の前に//を追加して使ってみてください
return wp_kses_data( $content );
}
?>
PHPでのstrip_tags()に似ていますが、利用できるhtml要素や、属性の利用を許可したりすることができます。
サンプルでは、簡単にフィルタで書いていますが、アクションフックなどを利用することで、保存する場合に、特定のタグが使われている場合は、それを削除して保存するといったことが可能になります。
研究してみてください
nobitaさん
ご返信が遅くなってしまい、大変申し訳ございませんでした。
nobitaさんのコードを貼り付けたことで、リンク以外が機能しなくなりました。
驚きです。ありがとうございます。
一点聞きたいのですが、
nobitaさんのコードを貼りつけたところ、
段落が効かなくなってしまいました。
これも、コードで解決という形になるのでしょうか。
よろしければご返信いただけますと嬉しいです。
お願い致します。