get_the_excerpt() не возвращает пустую строку, когда the_excerpt пуст?

14 янв. 2011 г., 00:30:24
Просмотры: 2.59K
Голосов: 1

В приведённом ниже коде представлен список ссылок на последние записи. Я пытаюсь вывести название записи вместе с отрывком, если он существует. Для этого я использую функцию 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;
    }
1
Комментарии

get_the_excerpt не принимает никаких аргументов. Эта функция возвращает краткое описание текущей записи в цикле (из глобальной переменной $post)

onetrickpony onetrickpony
14 янв. 2011 г. 00:47:37
Все ответы на вопрос 1
1

У меня получилось. Вот что пришлось сделать в моей вспомогательной функции...

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

можно удалить аргумент $post, он избыточен

onetrickpony onetrickpony
14 янв. 2011 г. 01:02:32