读取quicktags。dev.js我在评论中看到
* Run quicktags(settings) to initialize it, where settings is an object containing up to 3 properties:
* settings = {
* id : \'my_id\', the HTML ID of the textarea, required
* buttons: \'\' Comma separated list of the names of the default buttons to show. Optional.
* Current list of default button names: \'strong,em,link,block,del,ins,img,ul,ol,li,code,more,spell,close\';
* }
*
* The settings can also be a string quicktags_id.
*
* quicktags_id string The ID of the textarea that will be the editor canvas
* buttons string Comma separated list of the default buttons names that will be shown in that instance.
看起来我应该能够调用javascript函数quicktags(),至少传递文本区域的ID,并且应该在任何文本区域之前创建quicktags编辑器。(我在代谢箱中工作)。
但是,如果我在代码中输入以下内容:
try { quicktags( \'_repeating_textareas_meta[repeating_textareas][0][textarea]\'); } catch(e){}
我基本上是从源代码中的javascript中复制了它,并添加了我的metabox ID。
它打印出quicktags工具栏应该位于的div,但不制作任何按钮
<div id="qt__repeating_textareas_meta[repeating_textareas][0][textarea]_toolbar" class="quicktags-toolbar"></div>
控制台。日志未显示任何错误。我发誓这次我已经撤销了所有可能对源代码的篡改。
EDIT:
我已将问题隔离到源代码中脚本出现的位置。。。如果Fred Rocha的函数在admin\\u print\\u footer\\u脚本上运行,而不是在after\\u wp\\u tiny\\u mce上运行,那么使用Fred Rocha的函数会非常有效(就像我预期的那样)。。。结果是我得到了同样的空工具栏。
我的jquery插件的其他部分需要在tinymce设置初始化后运行(因为我直接借用了现有的设置),那么为什么它可以在一个钩子上正常工作,而不能在以后的钩子上正常工作呢?
最合适的回答,由SO网友:Fred Rocha 整理而成
我偶然发现了同样的问题,并让quicktags开始工作。
下面是要添加到函数的代码。php:
<?php
add_action(\'admin_print_footer_scripts\',\'my_admin_print_footer_scripts\');
function my_admin_print_footer_scripts()
{
?>
<script type="text/javascript">/* <![CDATA[ */
var id = "myID"; // this is your metabox\'s textarea id
settings = {
id : id,
buttons: \'strong,em,link\'
}
quicktags(settings);
/* ]]> */</script>
<?php } ?>
这是应该让quicktags工作的基本代码。
如果要遍历所有(Verve)元盒并指定工具栏,以下代码可以完成此操作:
add_action(\'admin_print_footer_scripts\',\'my_admin_print_footer_scripts\');
function my_admin_print_footer_scripts()
{
?><script type="text/javascript">/* <![CDATA[ */
jQuery(function($)
{
var i = 1;
$(\'.verve_meta_box_content textarea\').each(function(e)
{
var id = $(this).attr(\'id\');
if (!id)
{
id = \'customEditor-\' + i++;
$(this).attr(\'id\',id);
}
settings = {
id : id,
buttons: \'strong,em,link\' // Comma separated list of the names of the default buttons to show. Optional.
}
quicktags(settings);
});
});
/* ]]> */</script>
<?php } ?>
此外,为了保持前端的换行符,请确保在输出textarea内容时使用“the\\u content”过滤器,如下所示:
// schedule is the slug of the custom meta field
$schedule_juice = get_post_meta($current_post_ID, "schedule", false);
// preserve line breaks
$content = apply_filters(\'the_content\', $schedule_juice[0]);
echo $content;
调用my\\u admin\\u print\\u footer\\u scripts方法的优先级是阻塞问题。
祝你好运