如何获得一篇没有摘录的帖子的前几个单词?
$args = array(
'posts_per_page' => 5,
'offset' => 0,
'category' => '',
'category_name' => 'Energy',
'orderby' => 'date',
'order' => 'DESC',
'include' => '',
'exclude' => '',
'meta_key' => '',
'meta_value' => '',
'post_type' => 'post',
'post_mime_type' => '',
'post_parent' => '',
'author' => '',
'author_name' => '',
'post_status' => 'publish',
'suppress_filters' => true
);
$posts_array = get_posts( $args );
foreach($posts_array as $postCategory)
{
echo get_the_title( $postCategory->ID );
echo get_permalink( $postCategory->ID );
echo get_the_excerpt( $postCategory->ID ); // THIS WITH OU WITHOUT EXCERPT DOES NOT WORK
}
代码正在打印标题和固定链接,但它不会打印帖子的前几个单词。
我想了解如何打印帖子的前几个单词,无论是否有摘录分隔符。
由于
答案 0 :(得分:2)
$trimtitle = get_the_content($post->ID);
$shorttitle = wp_trim_words( $trimtitle, $num_words = 15, $more = '… ' );?>
<?php echo $shorttitle; ?>
答案 1 :(得分:0)
为此,您需要添加以下功能:
function truncate_string ($string, $maxlength) {
// Set the replacement for the "string break" in the wordwrap function
$cutmarker = "**cut_here**";
// Checking if the given string is longer than $maxlength
if (strlen($string) > $maxlength) {
// Using wordwrap() to set the cutmarker
// NOTE: wordwrap (PHP 4 >= 4.0.2, PHP 5)
$string = wordwrap($string, $maxlength, $cutmarker);
// Exploding the string at the cutmarker, set by wordwrap()
$string = explode($cutmarker, $string);
}
// returning $string
return $string;
}
然后在foreach循环中添加以下内容:
$content_post = get_post( $postCategory->ID );
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo truncate_string( $content, 75 );
(将75改为你想要的任何长度)