TLDR:我正在尝试向<ol>
, 如果不创建嵌套列表,似乎无法完成此操作。以下是我想要的:
<ol class="bold-numbers">
<li>Item 1</li>
</ol>
以下是我通过以下所有这些方法得到的结果:
<ol>
<li>
<ol class="bold-numbers">
<li>Item 1</li>
</ol>
</li>
</ol>
自定义样式方法我首先采用了这种方法,
like in this question. 这些是我用于自定义样式的设置。“样式格式”下拉列表也已添加到菜单中。
function bb_mce_before_init_insert_formats( $init_array ) {
$style_formats = array(
array(
\'title\' => \'Bold Numbers\',
\'block\' => \'ol\',
\'classes\' => \'bold-numbers\',
\'wrapper\' => true,
)
);
$init_array[\'style_formats\'] = json_encode( $style_formats );
return $init_array;
}
add_filter( \'tiny_mce_before_init\', \'bb_mce_before_init_insert_formats\' );
我然后:
创建编号列表
选择所有列表项从下拉列表中选择自定义样式这会给我留下如下标记:<ol>
<li style="list-style-type: none">
<ol class="bold-numbers">
<li>Lets try this again.</li>
<li>With a new list, created from the first.</li>
<li>Seems the spacing might be different between each line?</li>
</ol>
</li>
</ol>
因此,是的,正在添加该类,但如何防止额外的ol
是否要添加?操作:创建自己的按钮,然后我尝试创建自己的按钮,尝试捕获选择,解析HTML,添加类,然后返回添加的类。
(function () {
tinymce.create(\'tinymce.plugins.boldOL\', {
init: function (editor, url) {
editor.addButton(\'boldOL\', {
title: \'Add ordered list with bold numbers\',
text: \'Bold Number List\',
icon: \'\',
onclick: function () {
var content = jQuery(editor.selection.getContent())[0];
var wrap = document.createElement(\'div\');
content.classList.add(\'bold-numbers\');
wrap.appendChild(content);
editor.selection.setContent( wrap.innerHTML );
}
});
},
createControl: function (n, cm) {
return null;
},
});
tinymce.PluginManager.add(\'boldOL\', tinymce.plugins.boldOL);
})();
这很有趣,因为当我安慰我的选择时,它使用了ul
而不是ol
. 但仍然只是将其插入到列表项中:<ol>
<li>
<ul class="bold-numbers">
<li>item here</li>
<ul>
</li>
</ol>
短代码
作为最后的手段,我尝试创建一个只添加一个短代码的按钮div
类的包装器。“按钮”最终给我留下了同样的问题,tinymce捕获的选择仍然包含在父级中ol
和ul
.因此,我有:
<ol>
[shortcode inserted here]
<li>Items</li>
[/shortcode]
<ol>
有什么线索可以让这一切发生吗?
最合适的回答,由SO网友:theaemarie 整理而成
我想出来了!我最后跑了过去this page today 寻找其他东西并思考,就是这样。
我需要这个财产\'selector\'
, 因为这似乎指导了选择的目标,所以我改变了\'block\' => ol
到\'selector\' => \'ol\'
.
function bb_mce_before_init_insert_formats( $init_array ) {
$style_formats = array(
array(
\'title\' => \'Bold Numbers\',
\'selector\' => \'ol\',
\'classes\' => \'bold-numbers\',
\'wrapper\' => true,
)
);
$init_array[\'style_formats\'] = json_encode( $style_formats );
return $init_array;
}
add_filter( \'tiny_mce_before_init\', \'bb_mce_before_init_insert_formats\' );