0

我正在使用 Wordpress 最新版本、子主题和Visual Composer WPBakery Page Builder。

我正在使用将我的博客文章列出到模板 php 文件中WP_Query,并且在该页面中我需要:

  1. 显示特色图片(有标题) - 完成,
  2. 发布日期 - 完成,
  3. 并且只是帖子内容中的一个文本块 - 一个特定的行,其中包含一个带有文本块的列。这个文本块有一个类名:bblog-text-row。

我只需要回显/显示/显示该文本,但是当我这样做时,the_content ();它将连续输出 VC 简码作为带有简码和文本的原始文本。我还需要将此文本限制为 250 个字符。

这是我仅用于内容部分的代码:

<?php
$query = new WP_Query( array( 'post_type' => 'post' ) );
$posts = $query->posts;
foreach($posts as $post) {
?>
  <p>
   <?php
      $char_limit = 250; //character limit
      $content = $post->post_content; //contents saved in a variable
      echo substr(strip_tags($content), 0, $char_limit);
   ?>
  </p>
<?php
    }
?>

提前谢谢你。

H

4

1 回答 1

0

我找到了一个小解决方案,将使用 WPBakery Page Builder 制作的帖子内容放入列出所有帖子的 php 模板文件中 - 就像博客页面一样。可能有更聪明和更好的方法来做到这一点,但这解决了我的问题。

<?php
$the_query = new WP_Query( array( 'post_type' => 'post' ) );
while ($the_query->have_posts() ) {
    $the_query->the_post(); ?>
<!-- you may add more post content here
I just want to refer to the content, not meta content or custom fields -->
 <p class="bowe-post-content-bloc">
  <?php
    $conteudo = get_the_content(); //get ALL content for the post
    $padrao = array('(\[vc(.?)\])', '(\[/vc(.?)\])','(\[booom_baannng_anypostsharebuttons])'); //create a filter
    $reparacao = preg_replace ($padrao, "",$conteudo ); //remove content based on filter
    echo wp_trim_words ( $reparacao, 40, '...'); //display only 40 words
  ?>
 </p>
<!-- you may add more post content here
I just want to refer to the content, not meta content or custom fields -->
<?php
}
wp_reset_postdata(); ?>
于 2020-04-13T15:16:01.127 回答