我有一个Wordpress网站,我已将图像和文本分别拉出来用于我的single.php上的不同部分。
HTML - (Bootstrap 3框架)
<div class="row">
<div class="col-md-12">
<?php
preg_match_all('/(<img [^>]*>)/', get_the_content(), $matches);
for( $i=0; isset($matches[1]) && $i < count($matches[1]); $i++ ) {
echo $matches[1][$i];
}
?>
</div>
</div><!-- /row -->
<div class="row">
<div class="col-md-12">
<?php
echo preg_replace('/(<img [^>]*>)/', '', get_the_content());
?>
</div>
</div><!-- /row -->
这会将图像放在第一行,而文本放在第二行。
但是,当文本被拉出任何标签时,它不会包装文本。我想将文本包装在&lt; p>标签,所以我可以将CSS应用于它。
此外,在我的浏览器的检查器中,它会拉出图像的href链接并将其粘贴到代码中但不显示图片。 (第一行/代码,拉相同的链接并显示图片)不确定这是否正常。
答案 0 :(得分:1)
solid_luffy描述的是可以的,但你可以更简单。您可以在回显文本之前和之后添加<p>
标记。
<div class="col-md-12">
<p>
<?php
echo preg_replace('/(<img [^>]*>)/', '', get_the_content());
?>
</p>
</div>
这种方法的优点在于它将页面样式与实际内容分离,这是一种很好的做法。
答案 1 :(得分:0)
你可以这样做:
<div class="col-md-12">
<?php
echo "<p class='yourclass'>";
echo preg_replace('/(<img [^>]*>)/', '', get_the_content());
echo "</p>";
?>
</div>
在文本之前回显<p>
,它将被包含在其中。请记住也要回显结束标记。