コンテンツをckeditorフィールドに挿入するとき、htmlタグなしでテキストの1行をckeditorに書き込むと仮定します。これは、テキストを自動的にラッピングparagraphタグで囲む理由です。
これを削除する必要があります段落タグこれはページの構造を壊すためです。
Drupal 8では、ここで参照されているように、hook_editor_js_settings_alter
を実装し、config.autoParagraph
をfalseに設定する必要がある場合があります。 CKEDITOR.config.autoParagraph
/**
* Implements hook_editor_js_settings_alter().
*/
function MODULE_editor_js_settings_alter(array &$settings) {
foreach ($settings['editor']['formats'] as $name => $value) {
$settings['editor']['formats'][$name]['editorSettings']['autoParagraph'] = FALSE;
}
}
許可されたHTMLタグに<p>
がなく、[許可されたHTMLタグを制限し、問題のあるHTMLを修正する]フィルターを有効にすると、<p>
はフロントエンドに出力されません。これらの設定は、/admin/config/content/formats
に表示されるテキスト形式ごとに表示されます。
許可される形式 モジュールを使用すると、特定のフィールドを特定の形式に制限できます。このようにして、このフィールドを特定のテキスト形式(<p>
タグは許可しないが他の場所では許可する)に制限できます。
Drupal 7では、admin/config/content/ckeditに移動するか、変更するプロファイルの[編集]を押してから、[カスタムJavaScript構成](詳細オプションセクション)の下にあります)この行を追加します。
config.enterMode = CKEDITOR.ENTER_DIV;
alex-petrovによる元の回答の詳細:
Drupal 8で、CKeditorを使用してテキストフォーマットを「フルHTML」に変更した場合(divタグを許可する場合)、ソースをクリックして、<p>
を<div>
に変更すると、自動的に追加されません。次にコンテンツをロードするときに<p>
タグ。
これは、( clive に言及したように)ドキュメントのルートにブロックレベルの要素が必要なためです。
サイトはグローバルなp
スタイル、間隔、境界線、パディングなどを持つ可能性が低いため、これはdiv
タグで囲むよりも問題が少ないことがよくあります。