如何让Excerpt_More过滤器应用于实际的帖子摘录?

时间:2011-06-17 作者:Scott B

在下面的get\\u blog\\u execrpt()函数中,当文章摘录不存在时,extecrpt\\u more过滤器可以完美工作,但是,当文章有摘录时,我不会获得“阅读更多”链接。

我知道\\u摘录首先检查是否存在帖子摘录,这很好,但我也希望对其应用“阅读更多”链接。

为了使摘录\\u更适用于所有情况,我需要做哪些更改?

function get_blog_excerpt(){
    add_filter(\'excerpt_length\', \'ce4_excerpt_length\');
    add_filter(\'excerpt_more\', \'ce4_excerpt_more\');
    return the_excerpt();
}

function ce4_excerpt_length($length) {
    return 150;
}

function ce4_excerpt_more($more) {
    global $post;
    return \'...<a href="\'. get_permalink($post->ID) . \'">Read More</a>\';
}


function get_blog_links(){
    global $post;
    setup_postdata($post);
    $myposts = get_posts($args);echo \'<div id="menuFooterRecent" class="blog">\'; 
    echo \'<ul>\'; 
    foreach($myposts as $idx=>$post){ ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    <?php 
    echo get_blog_excerpt();
    echo \'<div style="clear:both">&nbsp;</div>\';?></li>
    <?php } echo \'</ul></div>\';
}
上述代码位于函数内部。php

下面的代码在归档文件中。php

<?php 
if(is_category()){
    if (get_query_var(\'cat\') == get_category_by_slug(\'blog\')->term_id){
        get_blog_links();
    }
    else 
    {
    get_category_links();
    }
} ?>    

1 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

我想你是在打电话get_blog_excerpt() 在模板的某个地方?

如果是这样,如果你只是打电话the_excerpt(), 然后拉两个add_filter() 调用容器函数?i、 e。functions.php 看起来就像:

function ce4_excerpt_length($length) {
    return 150;
}
add_filter(\'excerpt_length\', \'ce4_excerpt_length\');

function ce4_excerpt_more($more) {
    global $post;
    return \'...<a href="\'. get_permalink($post->ID) . \'">Read More</a>\';
}
add_filter(\'excerpt_more\', \'ce4_excerpt_more\');
在模板中,您只需调用the_excerpt().

如果这样做有效,那么我怀疑问题是您的过滤器没有得到应用-可能是由于包装在容器函数中。

结束

相关推荐

excerpt box not visible

我想使用摘录,但由于某些原因,在编辑帖子时,摘录编辑器不可见。我正在使用wordpress v3。1-已搜索选项,但找不到任何内容..:(我需要一个插件来使用摘录吗?wordpress中不应该默认包含它吗?谢谢