2011-08-12 53 views
7

有关WordPress的快速疑问。我一直在谷歌搜索,并找不到答案。WordPress编辑器Image for Shortcode

基本上我正在寻找复制当你添加一个画廊会发生什么:有一个图像显示为画廊shortcode [画廊]的立场。当您编辑HTML时,短代码可见。

我想要完全复制这个效果:当插入到编辑器中的短码插入到编辑器中时,我想将其渲染为图像。

事情我已经尝试:

  • 插入的元素(图像,DIV,我发现了一个输入是非常unfuckwithable等),用一个简码包裹(这工作正常,不是很大。短代码仍然可见,WP会自动向元素添加段落以创建用户可能添加的内容,可能会添加将被短代码消费的内容) -
  • 将短代码惰性化为<! - - >评论(这也不好,WP会偶尔吃掉它在Visual/HTML之间移动。的意见,也吃你的内容<! - [简码] - >占位符<! - [/简码] - >= < - 渲染简码 - >)

这就是我想到了一些事情。我无法找到关于如何模仿[gallery]的行为的指南,并且无法通过wp-admin的内核来找到它。

谢谢!

+3

搜索“[gallery”的WP源代码,你会发现处理这个问题的六个文件,包括一个TinyMCE插件。他们大多数都在wp-includes下,而不是wp-admin。 –

+0

D'oh看着wp-admin,感谢您的提示! – Mojowen

回答

6

好吧,找到答案感谢丹的提示。下面是如何做到这一点:

首先(如丹建议)看看他们如何将画廊插件添加到Tiny MCE。实际上,有一个未压缩的js文件,会给你你需要的概述,发现它在:

/wp-includes/js/tinymce/plugins/wpgallery/editor_plugin.dev.js

这越过基础将这种类型的插件添加到TinyMCE(more info here)。要让WP使用TinyMCE插件加载.js文件,see this helpful guide

基本上下面的代码:

if (get_user_option('rich_editing') == 'true') { 
    add_filter("mce_external_plugins", "add_jolokia_tinymce_plugin"); 
//Applying the filter if you're using the rich text editor 
} 

function add_jolokia_tinymce_plugin($plugin_array) { 
    $plugin_array['example'] = '/path/to/example.js'; 
    return $plugin_array; 
} 

一下添加到一个插件或function.php在一个主题,你是好!