【问题标题】:Disable WordPress from adding <p> tags禁止 WordPress 添加 <p> 标签
【发布时间】:2012-06-30 05:00:11
【问题描述】:

我所拥有的只是以下一小段代码:

<select size="1" name="EventHour<?php echo $i; ?>"> 
    <option>1</option> 
    <option>2</option> 
    <option>3</option> 
    <option>4</option> 
    <option>5</option> 
    <option>6</option> 
    <option>7</option> 
    <option>8</option> 
    <option>9</option> 
    <option>10</option> 
    <option>11</option> 
    <option>12</option> 
  </select> 
  : <!-- note this character -->
  <select size="1" name="EventMinute<?php echo $i; ?>"> 
    <option>00</option> 
    <option>05</option> 
    <option>10</option> 
    <option>15</option> 
    <option>20</option> 
    <option>25</option> 
    <option>30</option> 
    <option>35</option> 
    <option>40</option> 
    <option>45</option> 
    <option>50</option> 
    <option>55</option> 
  </select> 

应该输出正常。但是,WordPress 在我的两个选择元素以及“:”字符周围添加了一个 p 标记。这使得它们最终都位于不同的行上。

我已在此页面上安装并激活了 WordPress 插件“禁用可视化编辑器所见即所得”,但没有成功。我还能做些什么来阻止这种情况的发生?提前致谢!

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    使用这个:

    remove_filter( 'the_content', 'wpautop' );
    remove_filter( 'the_excerpt', 'wpautop' );
    

    在你的functions.php

    这是完整的答案:http://codex.wordpress.org/Function_Reference/wpautop#Disabling_the_filter

    【讨论】:

    • +1 用于指向 codex 的链接,该链接提供指向插件的链接,使您可以轻松地在单个页面上执行此操作。
    【解决方案2】:

    Wordpress 在编辑器和输出中修改和清理您输入的 HTML。

    使用此插件将未经修改的标记添加到您的帖子中:

    https://wordpress.org/extend/plugins/raw-html/

    【讨论】:

    • 我尝试了您的建议,暂时忽略了可读性,但由于某种原因它仍然添加了

      标签。

    • 好的,我想我已经更好地理解了这个过程......也无法让它正常工作。也许看看这个插件:wordpress.org/extend/plugins/raw-html
    • 我明白了。我修改了答案,因为我最初的解释实际上是错误的。
    • 这是正确答案。在插件安装程序中搜索“Raw HTML”,然后用 [raw][/raw] 包围您想要保持纯净的任何 html。多年来,这一直让我发疯,最终我可以解决它。谢谢@pixelistik
    • “清洁”在这里是一个强词。在我没有添加的地方插入 p 标签与清理相反。
    【解决方案3】:

    在你的functions.php中试试这个

    <?php remove_filter ('the_content', 'wpautop'); ?>
    

    【讨论】:

    • 谢谢,仍然得到相同的结果。
    • @user1048676 你试过这个插件(wordpress.org/extend/plugins/ps-disable-auto-formatting)吗?
    • 我刚尝试安装这个插件,仍然遇到同样的问题。
    • Wordpress 不会清理它已经输入的插入的

      标签,你必须清除它们,但之后它们不会回来。

    • @mahatmanich 有趣。你如何“清理”已经插入的 p 标签?尤其是当它们甚至没有出现在文本编辑器中时?如果您知道如何做到这一点(“元文本编辑器”?),这将是特别有用的信息!
    【解决方案4】:

    您可以缩小代码。如果所有内容都在一行上,Wordpress 不会破坏代码。

    当我想在某些帖子中添加&lt;style&gt; 或&lt;script&gt; 标签时,我会这样做。

    【讨论】:

      【解决方案5】:

      就我而言,我正在为页面手动操作:

      显示额外p标签的结果:

       <p><?php if($description){ echo $description; } ?></p> 
       <p><?php if($description){ echo wpautop($description); } ?></p> 
      

      删除额外p标签的结果:

       <?php if($description){ echo wpautop($description); } ?>  
      

      注意,我删除了echo 周围的p 标签,然后将wpautop 添加到echo。

      最终结果:

      <p>description content</p> 
      

      【讨论】:

        【解决方案6】:

        如果帖子是自定义帖子类型,您可以使用add_meta_box 添加元框,然后您可以使用可以自定义的wp_editor 初始化您自己的编辑器。例如,您可以将设置传递给 tinymce,例如“force_p_newslines”和“forced_root_block”

        【讨论】:

          【解决方案7】:

          至少在使用 contact-form-7 时,我使用 html-minifier 来防止那些讨厌的 p-tags 取得了一些成功。来到这里是因为我搜索了其他人是否也像我一样感到沮丧。

          如果您在代码 minifire 后仍然有问题,那么只需将您的标签转换为 div,其中自动添加 p 标签。

          【讨论】:

            【解决方案8】:

            如果其他人遇到这个问题并且不能或不想安装另一个插件,或者再次不能或不想编辑他们的functions.php文件,你也可以这样做!

            我的原始代码:

            your original code
            
            that worked wonderfully..
            
            and then wordpress happened
            

            我的代码和解决方法:

            your original code
            //
            that worked wonderfully..
            //
            and then wordpress happened
            

            只要我确保我的代码中没有任何空行,这至少对我来说似乎是一种解决方法。我想知道 : 是否不足以欺骗它不添加 p 标签,但我正在用 javascript 编码并且它对我有用。

            【讨论】:

              【解决方案9】:

              另一种解决方法: 将您的选择放在&lt;div&gt; 标记内,它们之间没有任何空格字符。所以而不是:

              <select ...>
              </select>
              
              <select ...>
              </select>
               
              

              你写这个:

              <div><select ...>
              </select></div>
              
              <div><select ...>
              </select></div>
              

              &lt;a&gt; 元素也有同样的问题,这解决了我的问题。

              【讨论】:

                【解决方案10】:
                <!-- wp:html -->
                
                You can insert your code between these tags.
                
                <!-- /wp:html -->
                

                在 5.6.2 WordPress 上测试

                【讨论】:

                  猜你喜欢
                  • 2011-03-21
                  • 1970-01-01
                  • 2014-05-07
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多