简单的任务,但不起作用:
<?php
$content = apply_filters( \'the_content\', get_the_content() );
$contentWithoutHTML = wp_strip_all_tags($content);
$pos = strpos($contentWithoutHTML, " ", 100);
$contentFinal = substr($contentWithoutHTML,0,$pos );
echo $contentFinal . "...";
?>
我的帖子长度超过100个字符(带空格),但我
strpos(): Offset not contained in string
错误,这让我相信它实际上并没有提取整个内容字符串。但我应用了我认为应该使用的过滤器。。。请协助。有时,即使没有偏移误差,我也会
...
尽管如此,还是有超过100个带空格的字符。。。虽然有时它是有效的。为什么不一致?
这是一个WP_Query
循环,其中大多数都工作,但其中一些不。。。所以我很确定这是一个字符串,因为我看到它发生在循环中的其他帖子上。。。
完整循环:
<?php
$args = array(
\'orderby\' => \'ID\',
\'order\' => \'ASC\',
\'posts_per_page\' => 7,
\'meta_query\' => array(
array(
\'key\' => \'_thumbnail_id\'
)
)
);
$query = new WP_Query($args);
while ($query->have_posts()):
$query->the_post();
?>
<div class="articleboxs boxs">
<div class="col-sm-4 noleft">
<div class="aricleleft boxs">
<?php the_post_thumbnail(\'medium\', array(
\'class\' => \'img-responsive\'
)) ?>
</div>
</div>
<div class="col-sm-8 noright">
<div class="aricleright boxs">
<div class="boxs">
<a href="<?php echo get_permalink(); ?>"><h2 class="heading font_Libre"><?php the_title(); ?></h2></a>
<?php
$content = apply_filters(\'the_content\', get_the_content(\'\', true));
print_r($content);
$contentWithoutHTML = wp_strip_all_tags($content);
$pos = strpos($contentWithoutHTML, " ", 100);
$contentFinal = substr($contentWithoutHTML, 0, $pos);
?>
<p class="font_Roboto"><?php echo $contentFinal . "..."; ?></p>
</div>
</div>
</div>
</div>
<?php
endwhile;
wp_reset_postdata();
?>
SO网友:Summer Developer
这个问题的答案在于
get_the_content()
现在我很清楚,这个函数的设计目的并不是为了在循环中获取帖子的全部内容,这就是为什么这个函数的一部分要讨论
$more_link_text
和
$strip_teaser
作为参数,关于被修剪的文本。
此外apply_filters(\'the_content\', get_the_content(\'\', true))
没有解决这个根本问题,它只是对内容进行一些HTML更改。
因此,在我的循环中,我引用了全局$post
.
$post->post_content
然后做strpos
和substr
从那里开始。
基本上,当我在做自己的修剪/摘录功能时,我可以绕过get_the_content()
完全因为我也想把它放到<p>
标记,我的代码可以如下所示:
<?php
$contentWithoutHTML = wp_strip_all_tags($post->post_content);
$pos = strpos($contentWithoutHTML, " ", 100);
$contentFinal = substr($contentWithoutHTML,0,$pos );
?>
<p class="font_Roboto"><?php echo $contentFinal . "..."; ?></p>
不要忘记重置
WP_Query
之后,以保持杠杆作用
$post
成功,具有
wp_reset_postdata();
循环之后。