新しい行を入力するためにテキストにEnterキーを押すと、TinyMCEエディタが<p> </p>
タグの代わりに<br>
を挿入します。
WPのTinyMCEに、改行を<br>
ではなく<p> </p>
に置き換えるよう強制するにはどうすればよいですか?
GavinR によって示唆された答えは正しいです。
ただし、推奨されているプラグインをインストールする必要はありません。このミニプラグインを追加するだけで、設定が完了します。
<?php
defined( 'ABSPATH' ) OR exit;
/* Plugin Name: TinyMCE break instead of paragraph */
function mytheme_tinymce_settings( $tinymce_init_settings ) {
$tinymce_init_settings['forced_root_block'] = false;
return $tinymce_init_settings;
}
add_filter( 'tiny_mce_before_init', 'mytheme_tinymce_settings' );
Enterキーを押すと、新しい段落を作成する代わりに<br>
タグが挿入されます。ただし、2つの連続した改行を作成しても、投稿コンテンツに wpautop
filterが適用された結果、テキストは段落に分割されます。最初にこのフィルタを削除して、すべての改行を<br>
タグで置き換える新しいフィルタを作成する必要があります。テンプレートにfunctions.php
タグを表示するには、<br>
に次のようなものを追加します。
remove_filter ( 'the_content', 'wpautop' );
add_filter ( 'the_content', 'add_newlines_to_post_content' );
function add_newlines_to_post_content( $content ) {
return nl2br( $content );
}
このプラグインをインストールしてください: http://wordpress.org/plugins/advanced-tinymce-configuration/ /
次に forced_root_block をFALSEに設定します。
段落ではなく改行が必要になるシナリオがどうなっているのかわからないので、これはうまくいかないかもしれません。特定の投稿タイプまたは特定のテンプレート用のものであれば、これを実行できます。
明らかに、このアプローチはメディアのリンクや挿入を含む、TinyMCEによって通常提供されているすべての通常のフォーマットオプションを削除します。だから、それはあなたのための選択肢ではないかもしれません。
もしあなたが<br>
(SHIFT + ENTER)の後の文の始めを意図したいのなら、カスタムソリューションを使う必要があるかもしれません:
functions.phpに追加:
add_action('init', 'add_cust_button');
function add_cust_button() {
if ( get_user_option('rich_editing') == 'true') {
add_filter('mce_external_plugins', 'add_mycust_plugin');
add_filter('mce_buttons_2', 'register_mycust_plugin');
}
}
function register_mycust_plugin($buttons) {
array_Push($buttons, "|", "indent_button");
return $buttons;
}
function add_mycust_plugin($plugin_array) {
$plugin_array['my_custom_button'] = get_bloginfo('template_url').'/scripts/button.js';
return $plugin_array;
}
add_filter( 'tiny_mce_version', 'my_refresh_mce');
function my_refresh_mce($ver) {
$ver += 3;
return $ver;
}
次に、テーマフォルダにフォルダ "scripts"を作成し、その中にアイコンファイル( "indent_img.png")とjavascriptファイル( "button.js")を作成します。
(function() {
tinymce.create('tinymce.plugins.Nlineeplg', {
init : function(ed, url) {
ed.addButton('indent_button', {
title : 'indent',
image : url+'/indent_img.png',
onclick : function() {
ed.execCommand('mceInsertContent', false, '<span style="margin:0 0 0 8px;"> </span>');
}
});
},
createControl : function(n, cm) {
return null;
}
});
tinymce.PluginManager.add('my_custom_button', tinymce.plugins.Nlineeplg);
})();
次に、EDITORページには特別なボタンがあり、文の先頭をクリックしてそのボタンをクリックすると、インデントが付けられます。
私の知る限りでは、これを行う唯一の方法はwpautop
フィルタを削除することです。
remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );
これは間違いなくWordPressが '人工的な' p
タグを追加するのを防ぎます。
私の考えは、WordPressはやや「素人」のために設計されているからです。彼らはwpautop
フィルタに含める必要があると感じています。有効なHTMLの一連の「チェック」を実行し、それに応じてコンテンツを調整します。
これはHTML側に触れることのない人にとっては素晴らしいかもしれませんが。これは多くのユーザーがHTMLを「いじる」ことを試みている側の悩みの種です。
注:wpautop
フィルタを削除すると、すべての投稿/ページ(新旧)にフィルタが使用されなくなります。これにより、コンテンツエディタ内のすべてのHTMLが一緒に(つぶされて)表示されます。ビジュアル面は問題なく表示されますが、テキスト面は押しつぶされています...コードの修正が困難です。
Bigsmokeのおかげで、wpautopで遊ぶことが可能です。
A - 選択したページでwpautopを有効または無効にする
B - function.phpを変更しないで
C - Wpautopフィルタが削除された場合、古いページをめくることなく
D - エディタのテキスト側にコンテンツを表示しない
http://wordpress.org/plugins/wpautop-control/ /
今、私は自動段落を楽しんで私のテキストレイアウトの大部分を作ることができますそしてそれからwpautopをオンまたはオフにすることなく面を完成させることができます。