WordPress是如何改变内容标记的?

时间:2016-06-10 作者:1.21 gigawatts

在我的帖子中,有视觉和文本选项卡。我已经格式化了一些内容,在文本选项卡中显示如下:

<strong>The Mission Statement –</strong>
The following is a mission statement.

<strong>Company Information –</strong>
Formed 2016, founded by 

<strong>Growth Highlights –</strong>
Highlights here
当我发布文档并查看HTML时,它会更改为以下内容(请注意段落标记):

<p>
    <strong>The Mission Statement –</strong>
    The following is a mission statement.
</p>

<p>
    <strong>Company Information –</strong>
    Formed 2016, founded by 
</p>

<p>
    <strong>Growth Highlights –</strong>
    Highlights here
</p>
我希望能够获得发布的HTML值。我使用的插件可以获取HTML的原始值,因此它只返回第一块代码。

我是否应该在遇到换行符的地方手动添加BR标记(我真的不想)?如何恢复格式?为什么它不起作用?

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

WordPress对内容运行过滤器以自动添加段落:wpautop. 如果愿意,您可以从所有帖子内容中删除过滤器:

remove_filter(\'the_content\',\'wpautop\');
或者,您可以查看Disabler 插件,可以为您做到这一点。

如果要从特定帖子中删除筛选器,可以执行以下操作:

add_filter(\'the_content\',\'maybe_remove_wpautop\',9);
function maybe_remove_wpautop($content) {
    global $post;
    // add post iDs for which you do not want autoparagraphs
    $nowpautopposts = array(\'23\',\'47\');
    if (in_array($post->ID,$nowpautopposts)) {remove_filter(\'the_content\',\'wpautop\');}
    return $content;
}
还应注意,在TextVisual 书写屏幕上的选项卡。这是一个更复杂的问题,如果您想删除它,可以尝试Preserve HTML Markup Plus 插件。

Update:

更新问题后,从内容中获取已处理HTML代码块的方法是使用以下内容:

// (if you don\'t already have the post object)
global $post;
$post = get_post($postid);

// apply the content filters to the post object contents
$content = apply_filters(\'the_content\', $post->post_content);
这将对帖子的内容应用现有的内容过滤器。

我添加了更好的做法,确保$post 从post ID发送到post对象,因为某些插件完全可能使用$post 对象,并且您希望确保(例如,前面给出的代码需要这样做)

有鉴于此,如果您想在没有插件内容过滤器的情况下获取内容,有时可能需要删除并重新添加某些插件内容过滤器,但您需要具体说明。例如,如果您确实希望处理后的内容不包含自动段落(例如,如果您想自己以不同的方式添加它们),您可以这样做:

remove_filter(\'the_content\',\'wpautop\');
$content = apply_filters(\'the_content\', $post->post_content);
$add_filter(\'the_content\',\'wpautop\');

相关推荐

在WP站点的wp-content/ploads/目录中设置301重定向到新的图像URL

我需要在wp-content/uploads/ - 使用新的图像名称,因为旧的名称不起作用。你是怎么做到的?我想从重定向https://example.com/wp-content/uploads/2021/09/image-1.png 到https://example.com/wp-content/uploads/2021/09/image-2.png - 我试着使用我们的301重定向插件(Yoast, 和Redirection) 但两者都不起作用。我也试着改变.htaccess 来自以下地址(http