WordPress TinyMCE Advancedのテーブル作成時に自動でセットされるcssのwidth等を削除するサンプルです。(確認環境:WordPress 5.7)
目次
サンプル | 目的 |
自動でセットさせないコード |
目的
投稿入力画面でテーブルのアイコンからテーブルを作成するとデフォルトでwidth:50%等がセットされます。
<table style="border-collapse: collapse; width: 100%;">
<tbody>
<tr>
<td style="width: 50%;"></td>
<td style="width: 50%;"></td>
</tr>
<tr>
<td style="width: 50%;"></td>
<td style="width: 50%;"></td>
</tr>
</tbody>
</table>
これを以下のようにセットされないようにします。
<table>
<tbody>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody>
</table>
自動でセットさせないコード
functions.phpに以下を貼り付けます。
1.table_default_stylesに指定するやり方
/*---------------------------------------------------------
* TinyMCE Advanced width等の初期設定を消す
*---------------------------------------------------------*/
function tinymce_custom($settings) {
$invalid_style = array(
'table' => 'width height',
'th' => 'width height',
'td' => 'width height'
);
$settings['table_default_styles'] = json_encode($invalid_style);
return $settings;
}
add_filter('tiny_mce_before_init', 'tinymce_custom', 0);
6-8行目は、table,th,tdにwidthとheightを指定し、
10行目は、「table_default_styles」テーブルデフォルトに指定しています。
※列を追加するとwidthが入ってしまいます。
どうしてもwidthが入ってしまう場合は、自分で<td></td>を追加していきます。
2.invalid_stylesに指定するやり方
/*---------------------------------------------------------
* TinyMCE Advanced width等の初期設定を消す
*---------------------------------------------------------*/
function tinymce_custom($settings) {
$invalid_style = array(
'table' => 'width height border-collapse',
'th' => 'width height',
'td' => 'width height'
);
$settings['invalid_styles'] = json_encode($invalid_style);
return $settings;
}
add_filter('tiny_mce_before_init', 'tinymce_custom', 0);
6-8行目は、tableにborder-collapseとwidthとheight、th,tdにwidthとheightを指定し、
10行目は、「invalid_styles」(無効化)にしています。
※列を追加してもwidthは入りません。ただし自分でstyle="width:20%;"等指定してもビジュアルとテキストを切り替えるとstyleは消えてしまいます。
関連の記事
WordPressをインストールする(Windows10 + XAMPP)