2011-08-07 68 views
1

我在Wordpress的最新版本中使用最新版本的選項框架(在此處找到:http://wordpress.org/extend/plugins/options-framework/)以構建出一些主題選項/控件。在文本區域,我要求用戶輸出最好通過多個段落輸出的內容。我想保留它們在這個textarea中指定的間距。TextArea中的空間保留Wordpress中的選項框架插件

我通過簡碼輸出他們的選項,所有的間距都丟失了。我也通過回聲輸出它,所有的間距都會丟失。所以看起來輸入和存儲之間的間距損失正在發生。

謝謝你的幫助!

+0

地方看來是到wp_kses – Nicole

+0

我找到了解決辦法,但無可否認不是最好的解決方案有關。看起來這個文本替換是由於兩個元素而發生的。首先,框架本身通過利用wp_kses來清理textarea輸入以消除間距。我通過消除這個函數來解決這個問題其次,在將輸入存儲爲短代碼時,間隔再次被剝離。我安裝了另一個插件Exec PHP,它允許我在帖子中調用PHP以迴應textarea的輸入。但是,誠然,這不是最好的解決方案。我必須弄清楚如何在沒有 – Nicole

+0

剝離間距的實際文章中回顯該選項。我在想短代碼創建也會調用kses ...我認爲我會更好地修復源代碼,這實際上是wp_kses ...但對於所有密集目的,它看起來像wp_kses已經允許
Nicole

回答

1

我剛剛在本地進行了測試......該插件在選項的textarea中保留換行符,所以問題必須是w /如何顯示它。

WordPress的確實沒有在數據庫中保存 p標籤,所以通常他們不會得到由德文的插件保存。函數wpautop()被附加到the_content過濾器,並且它(有時看起來很愚蠢,但是這是一個不同的討論)決定了什麼應該包裝在p標籤中。

如果你

echo wpautop(of_get_option('test')); 

東西,我想出了瓦特/爲一個類似的問題瓦特/ metaboxes的textareas是創建一個過濾器,連接正常的內容過濾器到...一個「複製」什麼the_content如果你願意。我開始直接使用apply_filters('the_content'$ my_value),但一些插件鉤入該過濾器,它可能會變得奇怪。

echo apply_filters('meta_content',of_get_option('test')); 

然後在您的functions.php

//recreate the default filters on the_content 
add_filter('meta_content', 'wptexturize'  ); 
add_filter('meta_content', 'convert_smilies' ); 
add_filter('meta_content', 'convert_chars'  ); 
add_filter('meta_content', 'wpautop'   ); 
add_filter('meta_content', 'shortcode_unautop' ); 
add_filter('meta_content', 'prepend_attachment');