我试图在没有WP的情况下摘录。
<?php
require('../blog/wp-load.php');
$recent_posts = wp_get_recent_posts(array(
'numberposts'=>'1',
'supports' => array('title','editor','author','excerpt') )
);
foreach( $recent_posts as $recent ){
echo get_permalink($recent["ID"]; // ok
echo $recent["post_title"]; // ok
$echo wp_trim_excerpt( $recent['post_content']); // BAD: gives FULL article and not 55 words
echo $recent->post_excerpt; // BAD: gives EMPTY String
echo get_the_excerpt($recent); // BAD: gives EMPTY String
}
所有的方法都给了我不好的结果。
答案 0 :(得分:0)
使用setup_postdata()设置全局发布数据。
foreach( $recent_posts as $recent ){
setup_postdata( $recent );
echo get_permalink($recent["ID"]; // ok
echo $recent["post_title"]; // ok
echo get_the_excerpt($recent);
}
在主循环外部使用时,get_the_excerpt()等函数的行为会有所不同。
了解它here。
如果在The Loop外部使用此函数且帖子没有自定义摘录,则此函数将使用wp_trim_excerpt()生成摘录。该函数使用get_the_content(),它必须与The Loop一起使用,如果在循环外使用get_the_excerpt(),则会导致问题。为了避免这些问题,请在调用get_the_excerpt()之前使用setup_postdata()来设置全局$ post对象。