如果没有明确声明,为什么我的摘录不会显示?

时间:2015-08-18 作者:superhero

我的理解是the_excerpt() 将显示摘录(如果您已经明确),或显示实际内容的前几段(如果您没有)。

然而,在我的例子中,它只在声明时显示摘录,从不使用回退。

我想知道这是什么原因?我正在使用木材和一个我在过去几年中一直在开发的基础主题。它组织得很好。我能找到的唯一与这件事有关的是这些部分:

// Exerpt length
function init_excerpt_length()
{
  return 24;
}
add_filter(\'excerpt_length\', \'init_excerpt_length\');

// Change the suffix
function init_excerpt_sufix($txt)
{
  return str_replace(\' [...]\', \'…\', $txt);
}
add_filter(\'get_the_excerpt\', \'init_excerpt_sufix\');
巫婆对我来说看起来不错

出现问题时我使用的代码:

$context[\'blog_posts\'] = Timber::get_posts(
[
  \'suppress_filters\'  => 0,
  \'numberposts\'       => 10,
  \'offset\'            => ($context[\'page\'] - 1) * 10,
]);

print_r($context[\'blog_posts\']);
我试过使用wp_get_recent_posts 这导致了同样的结果。

我的想法是,这与wpml和我刚才所做的混乱的导入导出有关。但是,我不知道这个问题与数据库有什么关系。

1 个回复
SO网友:superhero

是ofc我误解了这一切的运作方式。WP\\u Post实例不会为您生成摘录,这很有意义,不使用它时会减少开销。

我不得不循环浏览它,感觉到由于木材的缘故,我无法在视图中使用这种逻辑。

$context[\'blog_posts\'] = get_posts(
[
  \'suppress_filters\'  => 0,
  \'numberposts\'       => 10,
  \'offset\'            => ($context[\'page\'] - 1) * 10,
]);
foreach ($context[\'blog_posts\'] as $post)
{
  setup_postdata($post);
  $post->post_excerpt = get_the_excerpt();
}

结束