内容不是包装在<p>标记中

时间:2015-11-26 作者:Behseini

你能看看吗this page (请浏览图片查看段落)并告诉我为什么the_content() 是否跳出段落标记?

  echo \'<p style="color:#fff !important; font-size:16px; line-height:18;">\'.the_content().\'</p>\';
给我们全部代码

    <div class="row">
<?php
$args = array( \'post_type\' => \'newArraivalsCPT\', \'posts_per_page\' => 1000 );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
$thumb_id = get_post_thumbnail_id();
$thumb_url_array = wp_get_attachment_image_src($thumb_id, \'thumbnail-size\', true);
$thumb_url = $thumb_url_array[0];
   echo \'<div class="col-sm-6 col-md-4">\';
echo \'<div class="thumbnail text-center demo-3">\';
echo \'<figure>\';
the_post_thumbnail(\'\', array(\'class\' => \'img-responsive\', \'href\' =>$thumb_url));
//            echo \'<img src="images/image1.jpg" alt=""/>\';
//            echo \'<img src="images/image1.jpg" alt=""/>\';
            echo \'<figcaption class="text-center">\';
?>
            <h3 class=""><?php the_title(); ?></h3>
            <?php
                echo \'<p style="color:#fff !important; font-size:16px; line-height:18;">\'.the_content().\'</p>\';
            echo \'</figcaption>\';
        echo \'</figure>\';

 echo \'<br />\';

echo \'<p><a href="\'.$thumb_url.\'" class="btn btn-sm btn-brown group1" title="Rumi Optical" role="button">Large Image</a></p>\';
echo \'</div>\';
echo \'</div>\';
echo \'</div>\';
endwhile;

?>        
enter image description here

这是来自Chrome控制台的图像

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

功能the_content() 使用p 标记自身。我是说,如果你使用

echo \'<p class="our_p">\' . the_content() . \'</p>;
它实际输出-

<p class="our_p"><p>lorem ipsum dolor sit amet...</p></p>
使用get_the_content() 相反它将返回未过滤的内容。某些链接此-

echo \'<p class="our_p">\' . get_the_content() . \'</p>;
法典:https://codex.wordpress.org/Function_Reference/the_content

SO网友:s_ha_dum

首先,您可以通过不尝试串联字符串来解决这个问题。

echo \'<p style="color:#fff !important; font-size:16px; line-height:18;">\',the_content(),\'</p>\';
请注意,我在周围使用了逗号the_content() 而不是句号。echo 将获取一系列逗号分隔的参数并依次打印它们。

然而the_content() 对帖子内容运行格式过滤器,这样最终会得到嵌套的段落标记,这是一种糟糕的形式。

您可以使用get_the_content() 正如在另一个答案中所建议的那样。。。即:

echo \'<p style="color:#fff !important; font-size:16px; line-height:18;">\'.get_the_content().\'</p>\';
但是。。。

与\\u content()的一个重要区别是get\\u the\\u content()不会通过“the\\u content”传递内容。这意味着get\\u the\\u content()将不会自动嵌入视频或扩展短代码等。

https://codex.wordpress.org/Function_Reference/get_the_content

... 现在嵌入和短代码都不起作用,一些格式过滤器也不起作用,而且您可能也破坏了主题和插件添加的一些过滤器。This is not a good solution.

您可能想要的是不那么复杂的东西:

echo \'<div class="figcap-content>\';
  the_content();
echo \'</div>\';
或者,如果您必须将所有内容塞进一行:

echo \'<span class="figcap-content>\'.the_content().\'</span>\';
使用样式表中的规则来设置内容的格式,因为您应该:

.figcap-content {
  color:#fff !important; 
  font-size:16px; 
  line-height:18;
}

SO网友:Smruti Ranjan

the_content() 函数使用p 标记自身。您可以使用

<?php echo $post->post_content; ?>

用于获取帖子内容。它不会自动添加P标记。

相关推荐