Php 从输出中删除除<;p>;标签

Php 从输出中删除除<;p>;标签,php,wordpress,Php,Wordpress,我有一个Wordpress网站,它通过内容()输出个人博客文章的内容 博客文章都由两部分组成,一个小图库和一些文字: <div class="gallery"><img></img>Blah Blah</div> <p>Text</p> <p>Text</p> 废话 正文 正文 我想拆分图库和文本,并将图库输出到左侧的一个div中,将文本输出到右侧的一个div中,如下所示: <div id=

我有一个Wordpress网站,它通过
内容()输出个人博客文章的内容

博客文章都由两部分组成,一个小图库和一些文字:

<div class="gallery"><img></img>Blah Blah</div>
<p>Text</p>
<p>Text</p>
废话
正文

正文

我想拆分图库和文本,并将图库输出到左侧的一个div中,将文本输出到右侧的一个div中,如下所示:

<div id="left">GALLERY CONTENT</div>
<div id="right">TEXT CONNTENT</div>
库内容
文本连接
我曾尝试使用
strip\u标记(内容(),“”)
来实现这一点,但事实并非如此-它将继续输出所有内容,包括图库


正确的方法是什么?

我不太清楚您真正想做什么,而且在这之前,您从输出中包含了一些(很少)源代码,但要真正了解答案,您需要包含模板文件中的相关代码

(和+1仅用于理解您不应触碰核心文件)

无论如何,我怀疑您只想禁用wordrpess生成的
自动p
,所以请尝试

remove_filter('the_content', 'wpautop');
(添加到主题中的functions.php。)

或者,您可以使用

add_filter('use_default_gallery_style', '__return_false');
这将只是“重置”画廊样式

或者甚至过滤你自己的画廊风格,这让你能够更好地定位它们

add_filter( 'gallery_style', 'my_own_gallery_style', 99 );

function my_own_gallery_style() {
    return "<div class='gallery'>"; // put your own
}

另一方面,如果你想“捕获”部分“内容”并以不同的方式在循环中显示,你可以使用不同的技术,如另一个答案所述。

你使用的是显示内容而不是返回内容的
内容

将代码更改为

strip_tags(get_the_content(), '<p>')
strip\u标记(获取内容(),“”)

我不久前也遇到了同样的问题。下面是我所做的(在
single.php
中,这就是我遇到的问题):

基本上,我使用正则表达式从内容中删除库标记

$gallery
仍然包含短代码。我们不能只是随机显示它,否则它实际上会显示短代码。我们需要执行它,它将显示输出:

if ( get_post_format() == 'gallery' ) {
    echo '<div id="left">'. do_shortcode($gallery) .'</div>';
}
if(get_post_format()=='gallery'){
回显“”。do_短代码($gallery)。“”;
}
您的内容不再包含库,因此您可以执行以下操作:

<div id="right"><?php the_content(); ?></div>

if ( get_post_format() == 'gallery' ) {
    echo '<div id="left">'. do_shortcode($gallery) .'</div>';
}
<div id="right"><?php the_content(); ?></div>