2011-08-12 70 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在一個主題,你是好!