从_content中删除<p>标记

时间:2013-08-08 作者:Jon Mitten

我有一张图片的贴子格式,我遇到了一个问题,图片被一个<p> 标签我想去掉那个标签(特别是在single.php 版本)。

如何进入主题的格式并删除<p> 标签,或者创建我想要的任何格式来输出这种类型的帖子,而不影响其他帖子格式的帖子?

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

默认情况下,WordPress会添加段落

类别描述的标记。通过将以下内容添加到functions.php 文件

// Remove p tags from category description
remove_filter(\'term_description\',\'wpautop\');

Simple and easy (codeless).

非常感谢。

SO网友:Chittaranjan

Wordpress自动广告<p> 内容的标记。因此,它会在加载内容时显示。这是过滤器wpautop. 因此,我们将删除image 仅post类型。您可以通过在函数中添加以下代码来管理这一点。php文件。

// Add the filter to manage the p tags
add_filter( \'the_content\', \'wti_remove_autop_for_image\', 0 );

function wti_remove_autop_for_image( $content )
{
     global $post;

     // Check for single page and image post type and remove
     if ( is_single() && $post->post_type == \'image\' )
          remove_filter(\'the_content\', \'wpautop\');

     return $content;
}
is_single() 检查是否显示单个帖子。

SO网友:CreMedian

如果此帖子类型称为“图像”,则可以创建单个模板来处理仅显示图像帖子类型。

复制你的“单曲”。php“文件并重命名副本”单个图像。php’。现在,您可以只控制图像帖子。要去掉标签,我喜欢使用strip_tags() 作用如果您使用the_content() 它已经应用了内容过滤器,在<p> 标签。

下面是一个示例,说明如何在没有标签的情况下获取图像内容:

$imageContent = get_the_content();
$stripped = strip_tags($imageContent, \'<p> <a>\'); //replace <p> and <a> with whatever tags you want to keep after the strip
echo $stripped;
希望这有帮助!

SO网友:Saiful Islam

只需在主题函数的下面添加一行代码。php文件

对于内容:

remove_filter( \'the_content\', \'wpautop\' );
用于摘录

remove_filter( \'the_excerpt\', \'wpautop\' );
了解更多信息:https://codex.wordpress.org/Function_Reference/wpautop

SO网友:Subhojit Mukherjee

您可以使用get_the_content() 而不是the_content().这可能会解决您的问题,另一个解决方案与@Chittaranjan所描述的相同

SO网友:Maqk

您可以将特定的post类用于single-postsingle-format-standard 并根据需要将其仅隐藏在单个页面中,这样就不会与网站的其他部分发生冲突。

Example CSS Code*

.single-post .entry-content p:empty { display: none; }

Example CSS Code for specific post format Image

.single-format-image .entry-content p:empty { display: none; }

SO网友:Rahul S

为了从内容中删除p标记,可以使用以下代码

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

SO网友:Brad Dalton

另一种基于@chittaranjan的解决方案进行编码的方法

add_filter( \'the_content\', \'remove_autop_for_image\', 0 );

function remove_autop_for_image( $content ) {
     global $post;

     if ( is_singular(\'image\'))
          remove_filter(\'the_content\', \'wpautop\');

     return $content;
}

SO网友:Parthavi Patel

将此代码置于“活动子主题”的“style.css”中

p:empty {
  display: none;
}

SO网友:Muddasir

如果要从特定页面或帖子中删除,可以调用此

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

SO网友:Abdul Hameed

使用wp_strip_all_tags 您可以去掉所有html标记,包括p、div等https://developer.wordpress.org/reference/functions/wp_strip_all_tags/

wp_strip_all_tags(category_description());

SO网友:Shreyo Gi

虽然这个问题已经得到了回答,但我将发布以下内容以供进一步参考。

remove_filter (\'the_exceprt\', \'wpautop\');

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

remove_filter(\'term_description\',\'wpautop\');

Source

结束

相关推荐

使用_Content筛选器将音频链接替换为jplay

我正在尝试使用:add_filter( \'the_content\', \'filter_function_name\' ); 在我的帖子中找到链接到的所有锚定标签。mp3文件,然后用一个jplayer实例来替换它们,该实例将播放该文件,而不仅仅是显示要作为文件的链接。因此,我试图将由\\u内容输出的所有锚标记替换为以下html和js的实例:html: <div id=\"jquery_jplayer_#uniqueid\" class=\"jp-jplayer\"></d