get_the_excerpt() nu returnează un șir gol când the_excerpt este gol?
În codul de mai jos este reprezentată o listă de link-uri cu postări recente. Încerc să afișez numele postării, împreună cu excerpt-ul acesteia, dacă există. Folosesc funcția get_link_excerpt($post) pentru a determina dacă postarea curentă din bucla for are un excerpt.
Funcționează bine dacă postarea are un excerpt, însă dacă nu are, funcția get_the_excerpt() returnează propriul excerpt creat din conținutul paginii curente.
În acest caz, plasez această funcție pe pagina principală, așa că fiecare postare care nu are explicit un excerpt primește un excerpt virtual din conținutul paginii principale.
Se pare că transmit $post incorect, care este modul corect de a face acest lucru aici?
function show_footer_recent(){
$myquery = new WP_Query();$myquery->query(array('post__not_in' => get_option('sticky_posts')));
$myrecentpostscount = $myquery->found_posts;
if ($myrecentpostscount > 0){ ?>
<div>
<ul><i>Știri și articole recente</i>
<?php global $post;$myrecentposts = get_posts(array('post__not_in' => get_option('sticky_posts'),'numberposts' => get_option('cb2_recent_count')));
foreach($myrecentposts as $idxrecent=>$post) { ?>
<li class="page_item">
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><?php echo get_link_excerpt(); ?>
</li><?php } ?>
</ul>
</div>
<?php }}
function get_link_excerpt(){
$LinkExcerpt = strip_tags(substr(get_the_excerpt(), 0, 75 ));
if($LinkExcerpt != '')
{
return ": ".$LinkExcerpt."...";
}
return false;
}

Am reușit să funcționeze. Iată ce a trebuit să fac în funcția mea utilitară...
function get_link_excerpt(){
if(has_excerpt()){
$LinkExcerpt = strip_tags(substr(get_the_excerpt(), 0, 75 )); // Extrage primele 75 de caractere din rezumat fără tag-uri HTML
return ": ".$LinkExcerpt."..."; // Returnează rezumatul trunchiat cu "..." la sfârșit
}
return false; // Returnează false dacă postul nu are rezumat
}
