如何删除wp字幕快捷代码中的空<p></p>?

时间:2017-02-11 作者:Bao

我最近在WordPress中为我的图像添加了一个标题,现在有一个空的<p></p> 标记后<img> 标签这打破了我的风格。

有人能告诉我如何删除它吗?

谢谢你的帮助。

demo

4 个回复
SO网友:Maqk

重写WordPress本机功能不是一个好的做法。相反,您可以使用CSS隐藏空元素

p:empty  {
    display: none;
}
这将删除空元素。

SO网友:Fayaz

正在删除wpautop:

这很可能来自wpautop. 要解决这个问题,首先在主题的functions.php 文件:

remove_filter( \'the_content\', \'wpautop\' );
remove_filter( \'the_excerpt\', \'wpautop\' );
如果不能解决问题,那可能意味着<p></p> 进入您的数据库或[caption][/caption] 短代码。转到邮局(&P);编辑出<p></p>empty new line 来自WordPress编辑器Text 模式

这应该能解决你的问题。

替代CSS解决方案:

您可以使用CSS代码隐藏<p></p>this answer 建议。然而,使用该方法,它仍然会出现在HTML&;中;there\'s no point 创建它,然后用CSS完全隐藏它。在这种情况下,最好使用上述代码将其删除。

然而,如果你想保持wpautop 出于某种原因(可能是您在网站的其他地方使用它进行格式化),那么您可能只针对<p></p> 标题中的标签具有以下CSS:

.wp-caption > p:empty  {
    display: none;
}
这将保留wpautop 同时解决标题的显示问题。

SO网友:Tunji

您也可以使用str_replace 将p标记替换为the_content 过滤器:

function wpse256087_content_filter($content) {

    $content = str_replace( \'<p></p>\', \'\', $content );

    return $content;
}

add_filter( \'the_content\', \'wpse256087_content_filter\' );

SO网友:Jake Bellacera

您可以在do_shortcode_tag

function remove_empty_wp_caption_text($output, $tag) {
  if ($tag === \'caption\') {
    $output = str_replace(\'<p class="wp-caption-text"> </p>\', \'\', $output);
  }

  return $output;
}
add_filter(\'do_shortcode_tag\', \'remove_empty_wp_caption_text\', 10, 2);
这种方法的优点在于,除非[caption] 调用快捷码。

相关推荐

Are captions stored anywhere?

关于我之前的question about shortcode captions, 在我看来,标题的实际文本并不是存储在短代码本身的帖子内容之外的任何地方。我会认为wp_get_attachment_metadata 将存储附件的信息,但它不会。我错了吗?或者WordPress没有在任何地方存储实际的标题?