如果您熟悉 WordPress 中帖子和页面的格式,您可能已经注意到 WordPress 使用自动插入的 <p> 标签分隔段落。但是,这有时会导致问题。好消息是……可以通过插入简单的代码片段来禁用这种自动格式化。
Wpautop 是自动用 <p> 和 </p> 括起来双换行符的函数的名称。WordPress 在所有帖子类型(帖子、页面和自定义帖子类型)中使用此功能 – 用于内容和短代码生成的文本。因此,在 WYSIWYG 编辑器中使用简码驱动的网格系统等一些编辑工作可能会有很大的问题。
禁用自动 P-tag
可以通过几个简单的步骤禁用 wpautop 过滤器。需要在您的主题的functions.php 中插入以下几行(首选子主题)。正确插入后,WordPress 不会自动将 p-tag 插入帖子和摘录。
remove_filter ('the_content', 'wpautop');
remove_filter ('the_excerpt', 'wpautop');
在自定义帖子类型中禁用 Wpautop
使用以下代码段禁用自定义帖子类型中的自动 p-tag:
add_filter('the_content', 'disable_wpautop_cpt', 0);
功能 disable_wpautop_cpt( $content ) {
'custom_post_slug' === get_post_type() && remove_filter('the_content', 'wpautop' );
返回$内容;
}
禁用 Wpautop 并列出异常
这是代码片段的增强版本,允许您列出异常(如果有):
/**
* 根据条件允许或删除 wpautop
*/
功能条件_wpautop($内容){
// true = wpautop 为 ON,除非遇到任何异常
// false = wpautop 关闭,除非遇到任何异常
$wpautop_on_by_default = true;
// 在此处列出异常(每个异常应返回 true 或 false)
$异常 = 数组(
is_page_template('page-example-template.php'),
is_page('示例页面'),
);
// 检查是否遇到任何异常 // 返回 true 或 false
$exception_is_met = in_array(true, $exceptions);
// 返回内容
如果($wpautop_on_by_default==$exception_is_met){
remove_filter('the_content','wpautop');
返回$内容;
} 别的 {
返回$内容;
}
}
add_filter('the_content', 'conditional_wpautop', 9);
删除 WordPress 已添加的空段落
将其复制粘贴到您的 functions.php
文件中(来源 – GitHub):
/**
* 删除由 wpautop() 创建的空段落
* @作者瑞恩汉密尔顿
* @link https://gist.github.com/Fantikerz/5557617
*/
函数 remove_empty_p( $content ) {
$content = force_balance_tags($content);
$content = preg_replace( '#<p>\s*+(<br\s*/*>)?\s*</p>#i', '', $content );
$content = preg_replace( '~\s?<p>(\s| )+</p>\s?~', '', $content );
返回$内容;
}
add_filter('the_content', 'remove_empty_p', 20, 1);
使用插件禁用自动段落标签
以下是一些可用于禁用 p 标签的插件:
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。