使用ECHO命令将不需要的br标签添加到源

时间:2013-02-21 作者:Tom Andersen

我正在编写一个插件,制作一个简单的HTML表单。我在考虑使用echo 对于所有输出,但我似乎无法控制输出的HTML的格式(用于调试、外观整洁的HTML,而不是讨论用户对页面的看法)。

如果我有这样的回声:

  echo \'<sometag>
      <otherTag>\';
它生成HTML,如:

 <sometag><br><otherTag>
因此,我将echo语句更改为:

 echo \'<sometag>\';
 echo \'<otherTag>\';
并获得HTML,如:

 <sometag><otherTag>
最后,我将echo语句更改为:

 echo "<sometag>\\n<otherTag>"
但是WordPress将\\n 变成一个<br>!

要在php之外使用HTML输出文本,唯一的方法是使用格式良好的HTML吗?

还是有办法echo (或print) 只输出我发送的内容?

好的,我找到了一些指向“为什么”的代码。在我看来,这个主题的制作者正在所有短代码上使用wptexturize和wpautop,很可能假设所有短代码都是他们自己的(按钮、ui小部件)短代码,让wptexturize在短代码上工作有助于一些主题设置。我可以想出更好的方法。。。

我正在为此主题编写插件,不会编辑主题,所以我想我会告诉他们使用[原始]短代码路由。

主题代码来自/themename/functions/shortcodes/setup。php

 <?php
 // Remove WordPress automatic formatting
 function theme_formatter ($content) {
     $new_content = \'\';
     $pattern_full = \'{(\\[raw\\].*?\\[/raw\\])}is\';
     $pattern_contents = \'{\\[raw\\](.*?)\\[/raw\\]}is\';
     $pieces = preg_split ($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);

     foreach ($pieces as $piece) {
        if (preg_match ($pattern_contents, $piece, $matches)) {
            $new_content .= $matches[1];
         }
         else {
        $new_content .= wptexturize (wpautop ($piece));
         }
     }

     return $new_content;
 }

 remove_filter (\'the_content\', \'wpautop\');
 remove_filter (\'the_content\', \'wptexturize\');

 add_filter (\'the_content\', \'theme_formatter\', 99);



 // Enable shortdoces in sidebar default Text widget
 add_filter (\'widget_text\', \'do_shortcode\');

1 个回复
最合适的回答,由SO网友:Brooke. 整理而成

如果这是插件代码,那么主题就没有理由起作用。我猜这是服务器问题(输出/n) 或WordPress函数,用于更改/n 进入<br>

我会检查的wpautop() 正如我发现的,有时这是功能故障。看见this post 在WordPress上。org论坛了解更多信息。

结束

相关推荐

为除home.php以外的所有页面设置不同的CSS

我正在创建我的第一个WordPress主题,我是PHP新手。我环顾了一下四周,但似乎找不到具体的答案。在我的标题中。php我想包括一些条件逻辑来设置除主页之外的所有页面的CSS。这是我当前的代码,但一定有更好的方法。还有几件事我很好奇。。。我是否需要确保管理员不会选择这些风格,我的方法是否被视为“最佳实践”,或者是否有更好的方法?<!--The Global Styles --> <link rel=\"stylesheet\" type=\"text/css\" href=\"