get_the_excerpt() не возвращает пустую строку, когда the_excerpt пуст?
В приведённом ниже коде представлен список ссылок на последние записи. Я пытаюсь вывести название записи вместе с отрывком, если он существует. Для этого я использую функцию get_link_excerpt($post), чтобы определить, есть ли отрывок у текущей записи в цикле.
Функция работает корректно, если у записи есть отрывок, однако если его нет, функция get_the_excerpt() возвращает автоматически сгенерированный отрывок из содержимого текущей страницы.
В данном случае я размещаю эту функцию на главной странице, поэтому каждая запись без явно указанного отрывка получает виртуальный отрывок из содержимого главной страницы.
Похоже, я неправильно передаю параметр $post. Как правильно это сделать в данном случае?
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>Последние новости и статьи</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;
}

У меня получилось. Вот что пришлось сделать в моей вспомогательной функции...
function get_link_excerpt(){
// Проверяем, есть ли краткое описание у записи
if(has_excerpt()){
// Получаем первые 75 символов описания, удаляя HTML-теги
$LinkExcerpt = strip_tags(substr(get_the_excerpt(), 0, 75 ));
// Возвращаем обрезанное описание с многоточием
return ": ".$LinkExcerpt."...";
}
// Если описания нет, возвращаем false
return false;
}
