【问题标题】:Space Retention from TextArea in Options Framework Plugin for WordpressWordpress 选项框架插件中 TextArea 的空间保留
【发布时间】:2011-08-07 01:49:11
【问题描述】:

我在最新版本的 Wordpress 上使用最新版本的选项框架(可在此处找到:http://wordpress.org/extend/plugins/options-framework/)来构建一些主题选项/控件。在文本区域中,我要求用户提供通过多个段落输出的最佳内容。我想保留他们在这个 textarea 中指定的间距。

我通过简码输出他们的选项,所有间距都丢失了。我还通过回声输出它,所有间距都丢失了。因此,输入和存储之间似乎正在发生间距损失。

感谢您的帮助!

【问题讨论】:

  • 看来和wp_kses有关
  • 我找到了一个解决方案,虽然公认不是最好的解决方案。似乎由于两个元素而发生这种文本替换。首先,框架本身通过使用 wp_kses 清理 textarea 输入以删除间距。我通过消除此功能解决了这个问题。其次,在将输入存储为简码时,间距再次被剥离。我安装了另一个插件,Exec PHP,它让我在帖子中调用 PHP 来回显 textarea 的输入。但是,诚然,这并不是最好的解决方案。我必须弄清楚如何在没有的情况下在实际帖子中回显该选项
  • 剥离间距。我认为短代码创建也调用 kses...我认为我最好修复源代码,实际上是 wp_kses...但是出于所有密集目的,看起来 wp_kses 已经允许

标签: wordpress wordpress-theming


【解决方案1】:

我只是在本地对此进行了测试...该插件在选项的文本区域中维护换行符,因此问题必须与您如何显示它有关。

wordpress 不会在数据库中保存 p 标签,因此通常不会被 Devin 的插件保存。函数 wpautop() 附加到 the_content 过滤器,它(有时看似随意,但这是一个不同的讨论)决定应该在 p 标签中包装什么。

如果你

echo wpautop(of_get_option('test'));

我想出了一个类似的问题 w/ 元框中的文本区域是创建一个过滤器并将普通内容过滤器附加到该过滤器...如果您愿意,可以“复制” 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' );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多