在下面的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"> </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();
}
} ?>
最合适的回答,由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()
.
如果这样做有效,那么我怀疑问题是您的过滤器没有得到应用-可能是由于包装在容器函数中。