使WordPress成为核心

变更集45585


忽略:
时间戳:
2019年2月7日上午01:30:15(5年(之前)
作者:
奔腾
消息:

清理杂散<p>标签由添加wpautop()块级别标记内部。

自动()有时会感到困惑,无法清理流浪者<p></p>块级元素中的标记,这会产生次优的HTML。虽然浏览器通常可以处理它,但如果我们不必这样做的话,就没有必要为它们设置困难。

Props pento、ayubi、pbearne、jond、azaozz、1994rstefan、dionysous、Mike HansenMe、jorbin、miqrogroove、niallkennedy。
修复#27350.

位置:
大旅行箱
文件夹:
2已编辑

图例:

未修改
补充
远离的
  • trunk/src/wp-includes/formatting.php

    45580兰特 45585兰特  
    493493$pee=preg_replace('|<br\s*/?>\s*<br\s*/?>|',“\n\n”,$pee);
    494494
    495 $allblocks='(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)';
     495$allblocks='(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)\b';
     496$allblocksexceptp=str_replace(“|p|”,“|”,$allblock);
    496497
    497498//在块级开始标记上方添加双换行符。
     
    559560$pee=preg_replace('|<p>\s*</p>|','',$pee);
    560561
     562//如果开始或结束块元素标记被包装在<p>中,请将其展开。
     563$pee=preg_replace('!<p>\s*(</?'.$allblocks.'[^>]*>)\s*</p>!','$1',$小便);
     564
    561565//如果缺少,则在<div>、<address>或<form>标记中添加结束<p>。
    562566$pee=preg_replace('!<p>([^<]+)</(div|address|form)>!','<p> $1</p></$2>',$pee);
    563 
    564 //如果开始或结束块元素标记被包装在<p>中,请将其展开。
    565 $pee=preg_replace('!<p>\s*(</?'.$allblocks.'[^>]*>)\s*</p>!','$1',$小便);
    566567
    567568//在某些情况下,<li>可能被包裹在<p>中,请修复它们。
     
    577578//如果开始或结束块元素标记后面跟着结束<p>标记,请将其删除。
    578579$pee=preg_replace('!(</?'.$allblocks.'[^>]*>)\s*</p>!','$1',$小便);
     580
     581//如果结束<p>标记位于块元素标记内,而前面没有开始<p>标签,请将其删除。
     582$pee=preg_replace('#(<('.$allblocksexceptp.')[^>]*>)(((?!<p>|</\2>).)*)</p> #s','$1$3',$pee);
     583
     584//如果开始<p>标记位于块元素标记内,而后面没有结束<p>标签,请将其删除。
     585$pee=preg_replace('#<p>((?!</p>).)*</'$除'>外的所有块)#s','$1',$pee);
    579586
    580587//可选插入换行符。
  • trunk/tests/phpunit/tests/formatting/Autop.php

    45577兰特 45585兰特  
    601601$this->assertEquals($expected,trim(wpauto($content)));
    602602    }
     603
     604    /**
     605*wpauto()应删除块内的杂散<p>和</p>标记
     606     *
     607*@门票27350
     608*@dataProvider数据_wpauto_removes_stray_p_tags_in_blocks
     609     */
     610函数test_wpauto_removes_stray_p_tags_in_blocks($data,$expected){
     611$this->assertEquals($expected,wpauto($data));
     612    }
     613
     614函数数据_wpauto_removes_stray_p_tags_in_blocks(){
     615返回数组(
     616阵列(
     617“<div><p>123</p></div>”,
     618“<div>\n<p>123</p>\n</div>\n”,
     619            ),
     620阵列(
     621“<div><p>123</p></div>”,
     622“<div>\n<p>123</p>\n</div>\n”,
     623            ),
     624阵列(
     625'你好<div>测试</div>',
     626“<p>你好</p>\n测试</div>\n”,
     627            ),
     628阵列(
     629“你好世界”,
     630“你好世界”,
     631            ),
     632阵列(
     633“<div>hello\n<pre>test</pre>\nworld</div>”,
     634“hello\n<pre>test</pre>\n<p>world</p></div>\n”,
     635            ),
     636阵列(
     637'你好<div>测试</div>',
     638“<p>你好</p>\n测试</div>\n”,
     639            ),
     640阵列(
     641'<div><img src=“/wp-content/uploads/example.jpg”alt=“something”/><div>something,
     642“<div><img src=\”/wp-content/uploads/example.jpg\“alt=\”something\“/>\n<div>something</div>\n”,
     643            ),
     644阵列(
     645“<div><span></span><div></div>”,
     646“<div><span></span>\n<div></div>\n</div>\n”,
     647            ),
     648阵列(
     649“<div>X<div></div></div>”,
     650“<div>X\n<div></div>\n</div>\n”,
     651            ),
     652阵列(
     653“<div><div></div>\n</div>”,
     654“<div>\n<div></div>\n</div>\n”,
     655            ),
     656阵列(
     657“[横幅]\n测试”,
     658“<p>[banner]</p>\n测试</h1>\n”,
     659            ),
     660        );
     661    }
    603662}
注:请参见TracChangeset(跟踪变更集)获取有关使用变更集查看器的帮助。