如何在不使用标签/过滤器的情况下获得与apply_filters('the_content)相同的结果?

问题描述:

我有一个插件,我将其描述为CMS lite。我创建了一个自定义帖子类型。我在这些条目中存储内容。然后我使用简码将自定义帖子内容插入到我的主帖中。这样我可以在多个注册表中插入相同的短代码。帖子,但只需在自定义帖子中更新一次。如何在不使用标签/过滤器的情况下获得与apply_filters('the_content)相同的结果?

为了获得自定义帖子类型的内容以维护其所见即所得(?hehe),我在该内容上使用了apply_filters('the_content',...)。咄?对?

问题是,如果有一个插件(例如,Sociable)附加到内容的末尾,apply_filters('the_content')将这些内容添加到我的自定义帖子类型内容中。毋庸置疑,我不需要 - 也不希望 - 社交媒体共享的多个实例都会在我的内容区域中溅起所有图标:)

我想要apply_filters('the_content'...)的标记/格式化但是我无法通过这种方式来解决这个问题。

帮助?

+0

为什么每次我在StackOverflow上发布问题后,我都会在一小时后找到答案。对于那些好奇的人,我认为这应该可以做到这一点:http://codex.wordpress.org/Function_Reference/wpautop – 2012-03-21 01:59:02

好问题。我发现有两种方法可以做到这一点:

1)编写自己的函数。如果您试图分析在WordPress环境之外加载的脚本中的文本块,这一点尤其有用。我发现这是在这种情况下是有用的:

function nl2p($str) { 
    $arr=explode("\n",$str); 

    for($i=0;$i<count($arr);$i++) { 
     if(strlen(trim($arr[$i]))>0) 
      $out.='<p>'.trim($arr[$i]).'</p>'; 
    } 
    return $out; 
} 

2)(我知道你已经在这个自己迷迷糊糊),可以使用<?php echo wpautop($post->post_content); ?>,使您的段落。

希望这有助于!