在<p>标签中包装拉出的文本

时间:2015-06-03 01:09:55

标签: javascript php jquery html css

我有一个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链接并将其粘贴到代码中但不显示图片。 (第一行/代码,拉相同的链接并显示图片)不确定这是否正常。

2 个答案:

答案 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>,它将被包含在其中。请记住也要回显结束标记。